Esempio n. 1
0
def convertNumberLiteral(number=0):
    literal = ''
    try:
        literal = number_to_char.numero_a_letras(number)
    except Exception:
        literal = 'Nothing'
    return literal
Esempio n. 2
0
 def get(self, request, *args, **kwargs):
     context = dict()
     try:
         context['bedside'] = get_object_or_404(
             ServiceOrder, Q(serviceorder_id=kwargs['pk']), Q(status='PE'),
             Q(flag=True))
         context['details'] = DetailsServiceOrder.objects.filter(
             serviceorder_id=kwargs['pk'])
         details = context['details']
         amount = 0
         for x in details:
             amount += float(x.amount)
         context['amount'] = '%.2f' % amount
         amount = (amount - (amount * (context['bedside'].dsct / 100)))
         context['dsct'] = '%.3f' % (amount *
                                     (context['bedside'].dsct / 100))
         if context['bedside'].sigv:
             context['igv'] = search.getIGVCurrent(
                 context['bedside'].register.strftime('%Y'))
         else:
             context['igv'] = 0
         context['qigv'] = '%.3f' % (amount * (float(context['igv']) / 100))
         context['total'] = '%.2f' % (amount + float(context['qigv']))
         context['literal'] = number_to_char.numero_a_letras(
             float(context['total']))
         context['status'] = globalVariable.status
         context['pagesize'] = 'A4'
         # print context
         html = render_to_string('report/rptserviceorders.html',
                                 context,
                                 context_instance=RequestContext(request))
         return generate_pdf(html)
     except TemplateDoesNotExist, e:
         raise Http404(e)
Esempio n. 3
0
def convertNumberLiteral(number=0):
    literal = ''
    try:
        literal = number_to_char.numero_a_letras(number)
    except Exception:
        literal = 'Nothing'
    return literal
Esempio n. 4
0
 def get(self, request, *args, **kwargs):
     try:
         rounded = '0.001'
         rtwo = '0.01'
         context = dict()
         context['bedside'] = Compra.objects.get(pk=kwargs['pk'], flag=True)
         lista = DetCompra.objects.filter(compra_id=kwargs['pk'])
         igv = 0
         subt = 0
         total = 0
         conf = Configuracion.objects.get(
             periodo=context['bedside'].registrado.strftime('%Y'))
         # search.getIGVCurrent(context['bedside'].registrado.strftime('%Y'))
         disc = 0
         # print conf.igv
         lcount = float(lista.count())
         sheet = 0
         if lcount > 20:
             sheet = int(float('%.0f' % (lcount)) / 20)
             if float(float('%.2f' % (lcount)) / 20) > sheet:
                 sheet += 1
         else:
             sheet = 1
         counter = 0
         section = list()
         for c in range(sheet):
             dataset = lista[counter:counter + 21]
             tmp = list()
             for x in dataset:
                 discountm = (
                     (Decimal(x.precio).quantize(Decimal(rounded)) *
                      Decimal(x.discount).quantize(Decimal(rounded))) / 100)
                 disc += (
                     Decimal(x.precio).quantize(Decimal(rounded)) *
                     (Decimal(x.discount).quantize(Decimal(rounded)) / 100))
                 if x.perception:
                     amount = (
                         Decimal(x.cantstatic).quantize(Decimal(rounded)) *
                         ((Decimal(x.precio - discountm).quantize(
                             Decimal(rounded))) +
                          (Decimal(x.precio).quantize(Decimal(rounded)) *
                           (conf.perception / 100))))
                 else:
                     amount = (
                         Decimal(x.cantstatic).quantize(Decimal(rounded)) *
                         (Decimal(x.precio).quantize(Decimal(rounded)) -
                          Decimal(discountm).quantize(Decimal(rounded))))
                 subt += amount
                 unit = None
                 if x.unit_id:
                     unit = x.unit_id
                 else:
                     unit = x.materiales.unidad_id
                 tmp.append({
                     'item':
                     counter + 1,
                     'materials_id':
                     x.materiales_id,
                     'matname':
                     x.materiales.matnom,
                     'measure':
                     x.materiales.matmed,
                     'observation':
                     x.observation,
                     'unit':
                     x.unit_id if x.unit_id else x.materiales.unidad_id,
                     'brand':
                     x.brand.brand,
                     'model':
                     x.model.model,
                     'quantity':
                     Decimal(x.cantstatic).quantize(Decimal(rtwo)),
                     'price':
                     x.precio,
                     'discount':
                     x.discount,
                     'perception':
                     x.perception,
                     'amount':
                     amount
                 })
                 counter += 1
             section.append(tmp)
         context['details'] = section
         # igv = search.getIGVCurrent(context['bedside'].registrado.strftime('%Y'))
         igv = conf.igv
         context['subtotal'] = subt
         # print context['bedside'].discount, 'DISCOUNT'
         if context['bedside'].discount:
             discount = ((Decimal(subt).quantize(Decimal(rounded)) *
                          Decimal(context['bedside'].discount).quantize(
                              Decimal(rounded))) / 100)
             ns = (subt - discount)
             # if disc:
             #     discount += disc
         else:
             discount = Decimal(disc).quantize(Decimal(rounded))
             ns = Decimal(subt).quantize(Decimal(rounded))
         # print discount
         context['discount'] = discount
         if context['bedside'].sigv:
             context['igvval'] = Decimal(
                 (Decimal(igv).quantize(Decimal(rounded)) * ns) /
                 100).quantize(Decimal(rtwo))
             context['igv'] = igv
         else:
             context['igvval'] = 0
         total = Decimal((context['igvval'] + ns)).quantize(Decimal(rtwo))
         context['total'] = total
         context['literal'] = number_to_char.numero_a_letras(total)
         context['status'] = globalVariable.status
         context['conf'] = conf
         context['pagesize'] = 'A4'
         html = render_to_string(self.template_name,
                                 context,
                                 context_instance=RequestContext(request))
         return generate_pdf(html)
     except TemplateDoesNotExist, e:
         raise Http404(e)