def render_to_response(self, context, **response_kwargs): if 'excel' in self.request.GET.get('excel', ''): lista_datos = [] datos = self.get_queryset() total_total = 0 total_pagado = 0 total_saldo = 0 for dato in datos: lista_datos.append([ dato.get_numero_de_factura(), dato.proveedor.razon_social, dato.fecha.strftime("%d/%m/%Y"), dato.fecha_de_vencimiento.strftime("%d/%m/%Y"), separador_de_miles(dato.total), ]) total_total += dato.total total_pagado += dato.pagado total_saldo += dato.saldo lista_datos.append(['', '', '', 'Total', separador_de_miles(total_total)]) titulos = ['Nro. Factura', 'Proveedor', 'Fecha Emision', 'Fecha Vencimiento', 'Total'] return listview_to_excel(lista_datos, 'compras', titulos) return super(CompraListView, self).render_to_response(context, **response_kwargs)
def get_posprensaotroserviciocosto(request): posprensaotroserviciocosto_id = (request.GET['id']).replace(" ", "") print "ajax posprensaotroserviciocosto_id (%s)" % posprensaotroserviciocosto_id result_set = [] if posprensaotroserviciocosto_id == "": return HttpResponse(json.dumps(result_set), content_type='application/json') posprensaotroserviciocosto = PosprensaOtroServicioCosto.objects.get( pk=posprensaotroserviciocosto_id) result_set.append({ 'cantidad': separador_de_miles(posprensaotroserviciocosto.cantidad - posprensaotroserviciocosto.cantidad_en_oc), 'precio': separador_de_miles(posprensaotroserviciocosto.precio_unitario), 'subtotal': separador_de_miles(posprensaotroserviciocosto.get_subtotal()) }) return HttpResponse(json.dumps(result_set), content_type='application/json')
def render_to_response(self, context, **response_kwargs): if 'excel' in self.request.GET.get('excel', ''): lista_pagos = [] pagos = self.get_queryset() total_pagos = 0 for pago in pagos: compras = DetalleDePago.objects.filter(pago=pago) facturas_de_compra = '' for compra in compras: facturas_de_compra += compra.compra.get_numero_de_factura( ) + ' - ' lista_pagos.append([ pago.id, pago.fecha.strftime("%d/%m/%Y"), pago.proveedor.razon_social, facturas_de_compra, separador_de_miles(pago.monto), ]) total_pagos += pago.monto lista_pagos.append( ['', '', '', 'TOTAL PAGADO:', separador_de_miles(total_pagos)]) titulos = [ 'ID', 'Fecha', 'Proveedor', 'Facturas de compra', 'Monto' ] return listview_to_excel(lista_pagos, 'pagos_a_proveedores', titulos) return super(PagoListView, self).render_to_response(context, **response_kwargs)
def get_detalle2_de_remision(request): id_remisiones = request.GET.get('id_remisiones') response = [] remisiones = id_remisiones.split(',') if id_remisiones == "": return HttpResponse(json.dumps(response), content_type='application/json') for remision in remisiones: detalles = DetalleDeRemision2.objects.filter(remision_id=remision) for detalle in detalles: response.append({ 'id': str(detalle.detalle_orden_de_trabajo_id), 'dot': str(detalle.detalle_orden_de_trabajo), 'descripcion': str(detalle.detalle_orden_de_trabajo.descripcion), #'iva': "IVA 10%", 'cantidad': separador_de_miles(detalle.cantidad), 'precio_unitario': separador_de_miles( detalle.detalle_orden_de_trabajo.get_precio_unitario()), 'subtotal': separador_de_miles( detalle.detalle_orden_de_trabajo.get_subtotal()), 'orden_de_compra': str(detalle.detalle_orden_de_trabajo.orden_de_trabajo. orden_de_compra_del_cliente) }) return HttpResponse(json.dumps(response), content_type='application/json')
def get_detalleordendetrabajo(request): detalle_orden_de_trabajo_id = (request.GET['dotid']).replace(" ", "") result_set = [] if detalle_orden_de_trabajo_id == "": return HttpResponse(json.dumps(result_set), content_type='application/json') detalle_orden_de_trabajo = DetalleOrdenDeTrabajo.objects.get( pk=detalle_orden_de_trabajo_id) result_set.append({ #cabecera 'ot': detalle_orden_de_trabajo.orden_de_trabajo.id, 'cantidad': separador_de_miles(detalle_orden_de_trabajo.orden_de_trabajo.cantidad), 'presupuesto': detalle_orden_de_trabajo.orden_de_trabajo.presupuesto_numero, 'cliente': detalle_orden_de_trabajo.orden_de_trabajo.cliente.razon_social, 'vendedor': str(detalle_orden_de_trabajo.orden_de_trabajo.cliente.vendedor_id) if detalle_orden_de_trabajo.orden_de_trabajo.cliente.vendedor_id != None else '', 'fecha': detalle_orden_de_trabajo.orden_de_trabajo.fecha_de_ingreso.strftime( "%d/%m/%Y"), 'precio': separador_de_miles( detalle_orden_de_trabajo.orden_de_trabajo.precio_unitario), 'orden_de_compra': detalle_orden_de_trabajo.orden_de_trabajo.orden_de_compra_del_cliente, #detalle papel 'detallecantidad': separador_de_miles(detalle_orden_de_trabajo.cantidad), 'descripcion': detalle_orden_de_trabajo.material.descripcion, 'gramaje': detalle_orden_de_trabajo.material.gramaje.descripcion if detalle_orden_de_trabajo.material.gramaje != None else '', 'resma': detalle_orden_de_trabajo.material.resma.descripcion if detalle_orden_de_trabajo.material.resma != None else '', # 'precio': separador_de_miles(detalle_orden_de_trabajo.material.costo_actual), #detalle del item 'nombre': detalle_orden_de_trabajo.descripcion, 'detalleentregado': separador_de_miles(detalle_orden_de_trabajo.entregado), 'detallerestante': separador_de_miles(detalle_orden_de_trabajo.restante), }) return HttpResponse(json.dumps(result_set), content_type='application/json')
def render_to_response(self, context, **response_kwargs): if 'excel' in self.request.GET.get('excel', ''): lista_datos = [] datos = self.get_queryset() total_total = 0 detalle_de_orden = '' for dato in datos: papeles = PapelOrdenDeCompra.objects.filter(orden_de_compra_id=dato.id) for papel in papeles: detalle_de_orden += str(papel.descripcion) preprensas = PreprensaOrdenDeCompra.objects.filter(orden_de_compra_id=dato.id) for preprensa in preprensas: detalle_de_orden += str(preprensa.descripcion) troqueles = TroquelOrdenDeCompra.objects.filter(orden_de_compra_id=dato.id) for troquel in troqueles: detalle_de_orden += str(troquel.descripcion) posprensas_materiales = PosprensaMaterialOrdenDeCompra.objects.filter(orden_de_compra_id=dato.id) for posprensa_materiales in posprensas_materiales: detalle_de_orden += str(posprensa_materiales.descripcion) posprensas_servicios = PosprensaServicioOrdenDeCompra.objects.filter(orden_de_compra_id=dato.id) for posprensa_servicios in posprensas_servicios: detalle_de_orden += str(posprensa_servicios.descripcion) datos_de_bolsas = DatosDeBolsaOrdenDeCompra.objects.filter(orden_de_compra_id=dato.id) for dato_de_bolsa in datos_de_bolsas: detalle_de_orden += str(dato_de_bolsa.descripcion) revistas = RevistaOrdenDeCompra.objects.filter(orden_de_compra_id=dato.id) compuestos = CompuestoOrdenDeCompra.objects.filter(orden_de_compra_id=dato.id) plastificados = PlastificadoOrdenDeCompra.objects.filter(orden_de_compra_id=dato.id) otros_gastos = OtroGastoOrdenDeCompra.objects.filter(orden_de_compra_id=dato.id) insumos = InsumoOrdenDeCompra.objects.filter(orden_de_compra_id=dato.id) lista_datos.append([ dato.fecha.strftime("%d/%m/%Y"), dato.proveedor.razon_social, separador_de_miles(dato.get_total()), detalle_de_orden, ]) total_total += dato.get_total() lista_datos.append(['Total', separador_de_miles(total_total)]) titulos = ['Fecha', 'Proveedor', 'Total', 'Detalle'] return listview_to_excel(lista_datos, 'ordenes_de_compras', titulos) return super(OrdenDeCompraListView, self).render_to_response(context, **response_kwargs)
def get_stock_material_deposito(request): material_id = request.GET.get('material_id', '') deposito_id = request.GET.get('deposito_id', '') datos = { 'saldo': separador_de_miles( get_stock(material_id=material_id, deposito_id=deposito_id)) } return JsonResponse(datos)
def get_compra(request): compra_id = (request.GET['compraid']).replace(" ", "") result_set = [] if compra_id == "": return HttpResponse(json.dumps(result_set), content_type='application/json') compra = Compra.objects.get(pk=compra_id) result_set.append({ 'total': separador_de_miles(compra.total), 'pagado': separador_de_miles(compra.pagado), 'saldo': separador_de_miles(compra.saldo) }) return HttpResponse(json.dumps(result_set), content_type='application/json')
def get_troquelcosto(request): troquelcosto_id = (request.GET['id']).replace(" ", "") print "ajax troquelcosto_id (%s)" % troquelcosto_id result_set = [] if troquelcosto_id == "": return HttpResponse(json.dumps(result_set), content_type='application/json') troquelcosto = TroquelCosto.objects.get(pk=troquelcosto_id) result_set.append({ 'cantidad': separador_de_miles(1), 'precio': separador_de_miles(troquelcosto.precio), 'subtotal': separador_de_miles(troquelcosto.precio) }) return HttpResponse(json.dumps(result_set), content_type='application/json')
def marcar_presupuesto_enviado(request, presupuesto_id): context = RequestContext(request) presupuesto = Presupuesto.objects.get(pk=presupuesto_id) if request.method == 'POST': presupuesto.estado = EstadoPresupuestos.ENVIADO presupuesto.save() return redirect('/admin/comercial/presupuesto/') mensaje = "Desea marcar como enviado el presupuesto " + separador_de_miles( presupuesto.id) return render_to_response('admin/confirm.html', {'mensaje': mensaje}, context)
def render_to_response(self, context, **response_kwargs): if 'excel' in self.request.GET.get('excel', ''): lista_datos = [] datos = self.get_queryset() for dato in datos: if dato.saldo != 0: lista_datos.append([ dato.get_numero_de_factura(), dato.proveedor.razon_social, dato.fecha.strftime("%d/%m/%Y"), dato.fecha_de_vencimiento.strftime("%d/%m/%Y"), separador_de_miles(dato.total), separador_de_miles(dato.saldo), ]) titulos = [ 'Factura', 'Proveedor', 'Emision', 'Vencimiento', 'Monto', 'Saldo' ] return listview_to_excel(lista_datos, 'Compras', titulos) return super(PagosPendientesListView, self).render_to_response(context, **response_kwargs)
def contenido(canvas, rendicion): from reportlab.lib.colors import darkblue, black canvas.setFillColor(darkblue) canvas.setFillColor(black) canvas.setStrokeColor(black) canvas.setFont("Helvetica-Bold", 13) # DATOS DE LA RENDICION canvas.setFont("Helvetica", 14) canvas.drawString(30, 820, "Rendicion Nro. : %s" % force_text(rendicion.id or '')) canvas.drawString(220, 820, "Fecha: %s" % force_text(rendicion.fecha.strftime('%d/%m/%Y') or '')) canvas.drawString(30, 800, "Cobrador : %s" % force_text(rendicion.cobrador or '')) # DETALLES canvas.line(30, 785, 350, 785) canvas.line(30, 765, 350, 765) canvas.drawString(30, 770, "Recibo") canvas.drawString(90, 770, u"Cliente") canvas.drawString(290, 770, "Subtotal") row = 765 canvas.setFont("Helvetica", 11) detalles = DetallePresentacion.objects.filter(presentacion=rendicion) total_rendicion = 0 for d in detalles: row -= 15 canvas.drawString(40, row, force_text(d.cobro.numero)) canvas.drawString(90, row, force_text(Truncator(d.cobro.cliente).chars(30))) canvas.drawString(280, row, force_text(separador_de_miles(d.subtotal)).rjust(13, ' ')) total_rendicion += d.subtotal row -= 10 canvas.line(30, row, 350, row) canvas.setFont("Helvetica-Bold", 13) row -= 14 canvas.drawString(230, row, "Total: %s Gs." % separador_de_miles(total_rendicion))
def get_ordendetrabajo(request): orden_de_trabajo_id = (request.GET['otid']).replace(" ", "") result_set = [] if orden_de_trabajo_id == "": return HttpResponse(json.dumps(result_set), content_type='application/json') orden_de_trabajo = OrdenDeTrabajo.objects.get(pk=orden_de_trabajo_id) result_set.append({ 'ot': orden_de_trabajo.id, 'nombre': orden_de_trabajo.nombre, 'cantidad': separador_de_miles(orden_de_trabajo.cantidad), 'cantidad_no_facturada': separador_de_miles(orden_de_trabajo.cantidad_no_facturada), 'presupuesto': orden_de_trabajo.presupuesto_numero, 'cliente': orden_de_trabajo.cliente.nombre, 'fecha': orden_de_trabajo.fecha_de_ingreso.strftime("%d/%m/%Y"), 'precio': separador_de_miles(orden_de_trabajo.precio_unitario), 'orden_de_compra': orden_de_trabajo.orden_de_compra_del_cliente, 'entregado': separador_de_miles(orden_de_trabajo.entregado), 'restante': separador_de_miles(orden_de_trabajo.restante), }) return HttpResponse(json.dumps(result_set), content_type='application/json')
def get_otrogastocosto(request): otrogastocosto_id = (request.GET['id']).replace(" ", "") print "ajax otrogastocosto_id (%s)" % otrogastocosto_id result_set = [] if otrogastocosto_id == "": return HttpResponse(json.dumps(result_set), content_type='application/json') otrogastocosto = OtroGastoCosto.objects.get(pk=otrogastocosto_id) result_set.append({ 'cantidad': separador_de_miles(otrogastocosto.cantidad - otrogastocosto.cantidad_en_oc), 'precio': separador_de_miles(otrogastocosto.precio_unitario), 'subtotal': separador_de_miles(otrogastocosto.get_subtotal()) }) return HttpResponse(json.dumps(result_set), content_type='application/json')
def get_datosdebolsacosto(request): datosdebolsacosto_id = (request.GET['id']).replace(" ", "") print "ajax datosdebolsacosto_id (%s)" % datosdebolsacosto_id result_set = [] if datosdebolsacosto_id == "": return HttpResponse(json.dumps(result_set), content_type='application/json') datosdebolsacosto = DatosDeBolsaCosto.objects.get(pk=datosdebolsacosto_id) result_set.append({ 'cantidad': separador_de_miles(datosdebolsacosto.cantidad - datosdebolsacosto.cantidad_en_oc), 'precio': separador_de_miles(datosdebolsacosto.precio_unitario), 'subtotal': separador_de_miles(datosdebolsacosto.get_subtotal()) }) return HttpResponse(json.dumps(result_set), content_type='application/json')
def render_to_response(self, context, **response_kwargs): if 'excel' in self.request.GET.get('excel', ''): lista_datos = [] datos = self.get_queryset().exclude(estado=ANULADO) for dato in datos: ots = DetalleDeVenta.objects.filter(venta=dato) otsConCambios = DetalleDeVenta2.objects.filter(venta=dato) ordenes = ' ' for ot in ots: ordenes += '[' + str( ot.orden_de_trabajo_id) + '] ' + ot.descripcion + ', ' for otConCambio in otsConCambios: ordenes += '[' + str( otConCambio.detalle_orden_de_trabajo. orden_de_trabajo_id ) + '] ' + otConCambio.descripcion + '; ' if dato.estado != 'A': lista_datos.append([ dato.get_numero_de_factura(), dato.cliente.razon_social, dato.fecha_de_emision.strftime("%d/%m/%Y"), dato.fecha_de_vencimiento.strftime("%d/%m/%Y"), separador_de_miles(dato.total), separador_de_miles(dato.saldo), dato.estado, ordenes ]) titulos = [ 'Factura', 'Cliente', 'Emision', 'Vencimiento', 'Monto', 'Saldo', 'Estado', 'Ordenes de trabajo' ] return listview_to_excel(lista_datos, 'Ventas', titulos) return super(VentaListView, self).render_to_response(context, **response_kwargs)
def get_precioventa(request): precioventa_id = (request.GET['precioventa_id']).replace(" ","") print "ajax precioventa_id (%s)" % precioventa_id result_set = [] if precioventa_id == "": return HttpResponse(json.dumps(result_set), #mimetype='application/json', content_type='application/json') precioventa_id = int(precioventa_id) precioventa = PrecioVentaProducto.objects.get(pk = precioventa_id) result_set.append({ 'precio': separador_de_miles(precioventa.precio_venta) }) return HttpResponse(json.dumps(result_set), content_type='application/json')
def get_maquina(request): maquina_id = (request.GET['maquinaid']).replace(" ", "") result_set = [] if maquina_id == "": return HttpResponse(json.dumps(result_set), content_type='application/json') maquina = Maquina.objects.get(pk=maquina_id) result_set.append({ 'descripcion': maquina.descripcion, 'precio': separador_de_miles(maquina.precio), 'codigo': maquina.id }) return HttpResponse(json.dumps(result_set), content_type='application/json')
def get_precioventa(request): precioventa_id = (request.GET['precioventa_id']).replace(" ", "") print "ajax precioventa_id (%s)" % precioventa_id result_set = [] if precioventa_id == "": return HttpResponse( json.dumps(result_set), #mimetype='application/json', content_type='application/json') precioventa_id = int(precioventa_id) precioventa = PrecioVentaProducto.objects.get(pk=precioventa_id) result_set.append({'precio': separador_de_miles(precioventa.precio_venta)}) return HttpResponse(json.dumps(result_set), content_type='application/json')
def render_to_response(self, context, **response_kwargs): if 'excel' in self.request.GET.get('excel', ''): lista_datos = [] datos = self.get_queryset() total_total = 0 total_pagado = 0 total_saldo = 0 for dato in datos: lista_datos.append([ dato.get_numero_de_factura(), dato.fecha_de_emision.strftime("%d/%m/%Y"), dato.fecha_de_vencimiento.strftime("%d/%m/%Y"), separador_de_miles(dato.total), separador_de_miles(dato.pagado), separador_de_miles(dato.saldo), ]) total_total += dato.total total_pagado += dato.pagado total_saldo += dato.saldo lista_datos.append([ 'Totales', '', '', separador_de_miles(total_total), separador_de_miles(total_pagado), separador_de_miles(total_saldo) ]) titulos = [ 'Nro. Factura', 'Fecha Emision', 'Fecha Vencimiento', 'Total', 'Pagado', 'Saldo' ] filename = "cobros_%s" % dato.cliente.nombre return listview_to_excel(lista_datos, filename, titulos) return super(EstadoDeCuentaListView, self).render_to_response(context, **response_kwargs)
def get_salario(self, obj): return separador_de_miles(obj.salario)
def get_total(self, obj): return separador_de_miles(obj.total)
def reporte_retiro(request, retiro_id): response = HttpResponse(content_type='application/pdf') pdf_name = "Retiro_" + datetime.now().strftime( '%Y-%m-%d|%H:%M:%S') + '.pdf' response[ 'Content-Disposition'] = 'attachment; filename=%s' % pdf_name.replace( " ", "_") buff = BytesIO() doc = SimpleDocTemplate( buff, pagesize=(A4), rightMargin=40, leftMargin=40, topMargin=60, bottomMargin=18, ) reporte = [] styles = getSampleStyleSheet() header = Paragraph("Retiro", styles['Title']) reporte.append(header) retiro = Retiro.objects.get(pk=retiro_id) numero = Paragraph("Numero: %s" % separador_de_miles(retiro_id), styles['Normal']) reporte.append(numero) fecha = Paragraph("Fecha: %s" % retiro.fecha.strftime("%d/%m/%Y"), styles['Normal']) reporte.append(fecha) cliente = Paragraph("Funcionario: %s" % retiro.funcionario.get_full_name(), styles['Normal']) reporte.append(cliente) header = Paragraph("detalle", styles['Title']) reporte.append(header) detalles = DetalleRetiro.objects.filter(retiro_id=retiro_id) datos = [("OT", "Deposito", "Material", "Cantidad")] for detalle in detalles: datos = datos + [( Paragraph( (separador_de_miles(detalle.orden_de_trabajo.id) if detalle.orden_de_trabajo != None else ''), styles['Normal']), Paragraph(detalle.deposito.nombre, styles['Normal']), Paragraph(detalle.material.__unicode__(), styles['Normal']), Paragraph(separador_de_miles(detalle.cantidad), styles['Normal']), )] t = Table(datos, colWidths=(30 * mm, 30 * mm, 105 * mm, 30 * mm)) t.setStyle( TableStyle([ ('BACKGROUND', (0, 0), (-1, 0), colors.grey), ('GRID', (0, 0), (-1, -1), 1, colors.black), #('ALIGN',(1,1),(1,-1),'RIGHT'), #('ALIGN',(3,1),(3,-1),'RIGHT'), #('ALIGN',(4,1),(4,-1),'RIGHT'), ])) reporte.append(t) doc.build(reporte) response.write(buff.getvalue()) buff.close() return response
def get_precio_unitario(self, obj): return separador_de_miles(obj.precio_unitario)
def get_existencia(self, obj): return separador_de_miles(obj.existencia)
def render_to_response(self, context, **response_kwargs): if 'excel' in self.request.GET.get('excel', ''): lista_recibos = [] recibos = self.get_queryset() total_anticipos = 0 total_retenciones = 0 total_efectivo = 0 total_cheques = 0 total_transferencias = 0 total_giros = 0 total_notas_de_credito = 0 total_tarjetas_de_credito = 0 total_tarjetas_de_debito = 0 total_otros = 0 total_del_dia = 0 for recibo in recibos: facturas_del_recibo = DetalleDeRecibo.objects.filter( recibo=recibo) facturas = ' ' for factura in facturas_del_recibo: facturas += factura.factura.get_numero_de_factura() + ' - ' pagos_del_recibo = DetalleDeRecibo2.objects.filter( recibo=recibo) anticipo = 0 retencion = 0 efectivo = 0 cheque = 0 transferencia = 0 giro = 0 tarjeta_de_credito = 0 tarjeta_de_debito = 0 otro = 0 nota_de_credito = 0 banco = ' ' cheque_nro = '' for pago in pagos_del_recibo: if pago.medio_de_pago == 8: anticipo = pago.monto if pago.medio_de_pago == 5: retencion = pago.monto if pago.medio_de_pago == 0: efectivo = pago.monto if pago.medio_de_pago == 1: transferencia = pago.monto if pago.medio_de_pago == 2: giro = pago.monto if pago.medio_de_pago == 7: tarjeta_de_credito = pago.monto if pago.medio_de_pago == 6: tarjeta_de_debito = pago.monto if pago.medio_de_pago == 9: otro = pago.monto if pago.medio_de_pago == 4: nota_de_credito = pago.monto if pago.medio_de_pago == 3: cheque = pago.monto if pago.cheque: banco = pago.cheque.banco.nombre cheque_nro = pago.cheque.numero if recibo.estado != 'A': lista_recibos.append([ recibo.numero, recibo.fecha.strftime("%d/%m/%Y"), recibo.cliente.nombre, facturas, separador_de_miles(anticipo), separador_de_miles(retencion), separador_de_miles(efectivo), separador_de_miles(transferencia), separador_de_miles(giro), separador_de_miles(tarjeta_de_credito), separador_de_miles(tarjeta_de_debito), separador_de_miles(otro), separador_de_miles(nota_de_credito), separador_de_miles(cheque), banco, cheque_nro, ]) total_anticipos += anticipo total_retenciones += retencion total_efectivo += efectivo total_transferencias += transferencia total_giros += giro total_notas_de_credito += nota_de_credito total_tarjetas_de_credito += tarjeta_de_credito total_tarjetas_de_debito += tarjeta_de_debito total_otros += otro total_cheques += cheque total_del_dia = total_anticipos + total_retenciones + total_efectivo + total_cheques + \ total_transferencias + total_giros + total_notas_de_credito + \ total_tarjetas_de_credito + total_tarjetas_de_debito + total_otros lista_recibos.append([]) lista_recibos.append([ '', '', '', 'TOTALES:', separador_de_miles(total_anticipos), separador_de_miles(total_retenciones), separador_de_miles(total_efectivo), separador_de_miles(total_transferencias), separador_de_miles(total_giros), separador_de_miles(total_tarjetas_de_credito), separador_de_miles(total_tarjetas_de_debito), separador_de_miles(total_otros), separador_de_miles(total_notas_de_credito), separador_de_miles(total_cheques) ]) lista_recibos.append( ['', '', 'TOTAL DEL DIA:', separador_de_miles(total_del_dia)]) titulos = [ 'Nro de Recibo', 'Fecha', 'Cliente', 'Facturas', 'Anticipo', 'Retencion', 'Efectivo', 'Transferencias', 'Giros', 'Tarjetas de credito', 'Tarjetas de debito', 'Otros', 'Notas de credito', 'Cheque', 'Banco', 'Nro de cheque' ] return listview_to_excel(lista_recibos, 'recibos_emitidos', titulos) return super(ReciboListView, self).render_to_response(context, **response_kwargs)
def separador_de_miles(numero): return separador_de_miles(numero)
def reporte_orden_de_trabajo(request, orden_de_trabajo_id): response = HttpResponse(content_type='application/pdf') pdf_name = "orden_de_trabajo_" + time.strftime( '%Y-%m-%d|%H:%M:%S') + '.pdf' response[ 'Content-Disposition'] = 'attachment; filename=%s' % pdf_name.replace( " ", "_") buff = BytesIO() doc = SimpleDocTemplate( buff, pagesize=(A4), rightMargin=40, leftMargin=40, topMargin=60, bottomMargin=18, ) orden_de_trabajo = OrdenDeTrabajo.objects.get(pk=orden_de_trabajo_id) reporte = [] styles = getSampleStyleSheet() #tabla cabecera con numero y fechas de la OT datos = [] elementos = [] # Tabla con datos de la cabecera Nro. OT y Nro. Presupuesto nro_ot = Paragraph( "Nro. de OT: %s" % separador_de_miles(orden_de_trabajo.id), styles['Heading2']) nro_presupuesto = Paragraph( "Nro. de presupuesto: %s" % orden_de_trabajo.presupuesto_numero, styles['Heading2']) elementos.append(nro_presupuesto) elementos.append(nro_ot) t_header = Table([elementos], colWidths=(125 * mm, 70 * mm)) reporte.append(t_header) #Tabla con datos de la OT datos += [("Nombre: %s" % orden_de_trabajo.nombre, "Fecha de ingreso: %s" % orden_de_trabajo.fecha_de_ingreso.strftime("%d/%m/%Y"))] #if request.user.has_perm('produccion.view_fecha_solicitada'): fecha_solicitada = orden_de_trabajo.fecha_solicitada.strftime( "%d/%m/%Y") if (orden_de_trabajo.fecha_solicitada != None) else '' datos += [("Cliente: %s" % orden_de_trabajo.cliente.razon_social, "Fecha de presentacion: %s" % fecha_solicitada)] datos += [("Vendedor: %s" % orden_de_trabajo.vendedor.get_full_name(), "")] datos += [("Comentarios: %s" % orden_de_trabajo.comentarios, "")] t = Table(datos, colWidths=(125 * mm, 70 * mm)) reporte.append(t) linea = Paragraph("", styles['Title']) reporte.append(linea) t = Table([("Opciones", )], colWidths=(195 * mm)) t.setStyle( TableStyle([ ('BACKGROUND', (0, 0), (-1, 0), colors.grey), ('GRID', (0, 0), (-1, -1), 1, colors.black), #('ALIGN',(3,1),(3,-1),'RIGHT'), #('ALIGN',(2,1),(2,-1),'RIGHT'), #('ALIGN',(4,1),(4,-1),'RIGHT'), ])) reporte.append(t) datos = [("Prueba de color:", ("Si" if orden_de_trabajo.prueba_de_color == True else "No"), "Prueba del producto:", ("Si" if orden_de_trabajo.prueba_de_producto == True else "No"))] datos = datos + [ ("Muestra de color:", ("Si" if orden_de_trabajo.muestra_de_color == True else "No"), "Muestra del producto:", ("Si" if orden_de_trabajo.muestra_de_producto == True else "No")) ] datos = datos + [ ("Repeticion:", ("Si" if orden_de_trabajo.repeticion == True else "No"), "Buscar sobrante:", ("Si" if orden_de_trabajo.buscar_sobrante == True else "No")) ] t = Table(datos, colWidths=(48 * mm, 48 * mm, 48 * mm, 48 * mm)) reporte.append(t) t = Table([("Detalle", )], colWidths=(195 * mm)) t.setStyle( TableStyle([ ('BACKGROUND', (0, 0), (-1, 0), colors.grey), ('GRID', (0, 0), (-1, -1), 1, colors.black), ('ALIGN', (0, 0), (-1, 0), 'CENTER'), #('ALIGN',(2,1),(2,-1),'RIGHT'), #('ALIGN',(4,1),(4,-1),'RIGHT'), ])) reporte.append(t) datos = [( "Categoria:", Paragraph((orden_de_trabajo.categoria.nombre if orden_de_trabajo.categoria != None else ''), styles['Normal']), "Subcategoria:", Paragraph((orden_de_trabajo.subcategoria.nombre if orden_de_trabajo.subcategoria != None else ''), styles['Normal']), "Cantidad:", separador_de_miles(orden_de_trabajo.cantidad), )] t = Table(datos, colWidths=(25 * mm, 45 * mm, 35 * mm, 45 * mm, 20 * mm, 25 * mm)) reporte.append(t) datos = [ ("Precio unitario:", separador_de_miles(orden_de_trabajo.precio_unitario, gs=True), "Total:", separador_de_miles(orden_de_trabajo.get_total(), gs=True)) ] + [("Cambios:", ("Si" if orden_de_trabajo.cambios == True else "No"), "Materiales compuestos", ("Si" if orden_de_trabajo.materiales_compuestos == True else "No"))] t = Table(datos, colWidths=(25 * mm, 45 * mm, 45 * mm, 80 * mm)) reporte.append(t) contador = 1 detalles = DetalleOrdenDeTrabajo.objects.filter( orden_de_trabajo_id=orden_de_trabajo_id) for detalle in detalles: datos = [(("#" + str(contador) + " Descripcion:"), Paragraph(detalle.descripcion, styles['Normal']), "Cantidad:", Paragraph(separador_de_miles(detalle.cantidad), styles['Normal']))] datos = datos + [("Material:", Paragraph(detalle.material.__unicode__(), styles['Normal']), "Dimensiones:", Paragraph(detalle.get_dimension(), styles['Normal'])) ] t = Table(datos, colWidths=(30 * mm, 115 * mm, 25 * mm, 25 * mm)) t.setStyle( TableStyle([ ("LINEABOVE", (0, 0), (-1, 0), 1, colors.black), #('BACKGROUND', (0, 0), (-1, 0), colors.grey), #('GRID', (0, 0), (-1, -1), 1, colors.black), #('ALIGN',(3,1),(3,-1),'RIGHT'), #('ALIGN',(2,1),(2,-1),'RIGHT'), #('ALIGN',(4,1),(4,-1),'RIGHT'), ])) reporte.append(t) datos = [("Color", "", "")] datos = datos + [("", "Frente", "Dorso")] datos = datos + [("Seleccion", detalle.color_seleccion_frente, detalle.color_seleccion_dorso)] datos = datos + [("Pantone", detalle.color_pantone_frente, detalle.color_pantone_dorso)] t = Table(datos, colWidths=(20 * mm, 45 * mm, 45 * mm)) t.setStyle( TableStyle([ ('SPAN', (0, 0), (-1, 0)), #('BACKGROUND', (0, 0), (-1, 0), colors.grey), ('GRID', (0, 0), (-1, -1), 1, colors.black), ('ALIGN', (0, 0), (-1, 1), 'CENTER'), #('ALIGN',(2,1),(2,-1),'RIGHT'), #('ALIGN',(4,1),(4,-1),'RIGHT'), ])) reporte.append(t) datos = [("Observaciones:", Paragraph(detalle.observaciones, styles['Normal']))] t = Table(datos, colWidths=(30 * mm, 165 * mm)) t.setStyle( TableStyle([ #('BACKGROUND', (0, 0), (-1, 0), colors.grey), #('GRID', (0, 0), (-1, -1), 1, colors.black), #('ALIGN',(3,1),(3,-1),'RIGHT'), #('ALIGN',(2,1),(2,-1),'RIGHT'), #('ALIGN',(4,1),(4,-1),'RIGHT'), ])) reporte.append(t) linea = Paragraph("", styles['Title']) reporte.append(linea) contador = contador + 1 doc.build(reporte) response.write(buff.getvalue()) buff.close() return response
def __unicode__(self): return unicode("Cheque " + self.numero + " | Gs." + separador_de_miles(self.monto))
def separador_miles(numero): return separador_de_miles(numero)
def reporte_orden_de_compra(request, orden_de_compra_id): response = HttpResponse(content_type='application/pdf') pdf_name = "orden_de_compra_" + datetime.now().strftime( '%Y-%m-%d|%H:%M:%S') + '.pdf' print pdf_name response[ 'Content-Disposition'] = 'attachment; filename=%s' % pdf_name.replace( " ", "_") buff = BytesIO() doc = SimpleDocTemplate( buff, pagesize=(A4), rightMargin=40, leftMargin=40, topMargin=60, bottomMargin=18, ) reporte = [] styles = getSampleStyleSheet() orden_de_compra = OrdenDeCompra.objects.get(pk=orden_de_compra_id) numero = "Numero: " + str(orden_de_compra.id) # reporte.append(numero) header = Table([ [" ", Paragraph("Orden de compra", styles['Title']), numero], ], colWidths=(65 * mm, 65 * mm, 65 * mm)) header.setStyle(TableStyle([('ALIGN', (2, 0), (2, 0), 'RIGHT')])) reporte.append(header) fecha = Paragraph("Fecha: %s" % orden_de_compra.fecha.strftime("%d/%m/%Y"), styles['Normal']) # reporte.append(fecha) proveedor = Paragraph( "Proveedor: %s" % orden_de_compra.proveedor.razon_social, styles['Normal']) # reporte.append(proveedor) contacto = Paragraph("Contacto: %s" % orden_de_compra.contacto, styles['Normal']) # reporte.append(contacto) telefono = Paragraph("Telefono: %s" % orden_de_compra.telefono, styles['Normal']) # reporte.append(telefono) forma_de_pago = Paragraph( "Forma de pago: %s" % orden_de_compra.forma_de_pago, styles['Normal']) # reporte.append(forma_de_pago) condicion = Paragraph("Condicion: %s" % orden_de_compra.condicion, styles['Normal']) # reporte.append(condicion) cheque_diferido = Paragraph( "Cheque diferido: %s" % orden_de_compra.cheque_diferido, styles['Normal']) # reporte.append(cheque_diferido) plazo = Paragraph("Plazo: %s" % orden_de_compra.plazo, styles['Normal']) # reporte.append(plazo) cabecera = [ [fecha, forma_de_pago], [proveedor, condicion], [contacto, cheque_diferido], [telefono, plazo], ] headerbox = Table(cabecera, colWidths=(80 * mm, 115 * mm)) headerbox.setStyle( TableStyle([('BOX', (0, 0), (-1, -1), 1, colors.black), ('LINEBEFORE', (0, 0), (-1, -1), 1, colors.black)])) reporte.append(headerbox) departamento_solicitante = Paragraph( "Departamento solicitante: %s" % orden_de_compra.departamento_solicitante, styles['Normal']) # reporte.append(departamento_solicitante) categoria_de_gastos = Paragraph( "Categoria de gastos: %s" % orden_de_compra.categoria_de_gastos, styles['Normal']) # reporte.append(categoria_de_gastos) responsable = Paragraph("Responsable: %s" % orden_de_compra.responsable, styles['Normal']) # reporte.append(responsable) cabecera2 = [ [departamento_solicitante], [categoria_de_gastos], [responsable], ] headerbox2 = Table(cabecera2, 195 * mm) headerbox2.setStyle( TableStyle([ ('GRID', (0, 0), (-1, -1), 1, colors.black), ])) reporte.append(headerbox2) #total = Paragraph("Total: Gs. %s" % separador_de_miles(orden_de_compra.total), styles['Normal']) #reporte.append(total) datos = [("OT", "Descripcion", "Cantidad", "Precio Unitario", "Subtotal")] detalles = PapelOrdenDeCompra.objects.filter( orden_de_compra_id=orden_de_compra_id) for detalle in detalles: datos = datos + [(separador_de_miles( detalle.descripcion.costo.detalle_orden_de_trabajo. orden_de_trabajo.id), detalle.descripcion.__unicode__(), separador_de_miles(detalle.cantidad), separador_de_miles(detalle.precio_unitario), separador_de_miles(detalle.get_subtotal()))] detalles = PreprensaOrdenDeCompra.objects.filter( orden_de_compra_id=orden_de_compra_id) for detalle in detalles: datos = datos + [(separador_de_miles( detalle.descripcion.costo.detalle_orden_de_trabajo. orden_de_trabajo.id), detalle.descripcion.__unicode__(), separador_de_miles(detalle.cantidad), separador_de_miles(detalle.precio_unitario), separador_de_miles(detalle.get_subtotal()))] detalles = TroquelOrdenDeCompra.objects.filter( orden_de_compra_id=orden_de_compra_id) for detalle in detalles: datos = datos + [(separador_de_miles( detalle.descripcion.costo.detalle_orden_de_trabajo. orden_de_trabajo.id), detalle.descripcion.__unicode__(), separador_de_miles(detalle.cantidad), separador_de_miles(detalle.precio_unitario), separador_de_miles(detalle.get_subtotal()))] detalles = PosprensaServicioOrdenDeCompra.objects.filter( orden_de_compra_id=orden_de_compra_id) for detalle in detalles: datos = datos + [(separador_de_miles( detalle.descripcion.costo.detalle_orden_de_trabajo. orden_de_trabajo.id), detalle.descripcion.__unicode__(), separador_de_miles(detalle.cantidad), separador_de_miles(detalle.precio_unitario), separador_de_miles(detalle.get_subtotal()))] detalles = PosprensaMaterialOrdenDeCompra.objects.filter( orden_de_compra_id=orden_de_compra_id) for detalle in detalles: datos = datos + [(separador_de_miles( detalle.descripcion.costo.detalle_orden_de_trabajo. orden_de_trabajo.id), detalle.descripcion.__unicode__(), separador_de_miles(detalle.cantidad), separador_de_miles(detalle.precio_unitario), separador_de_miles(detalle.get_subtotal()))] detalles = PosprensaOtroServicioOrdenDeCompra.objects.filter( orden_de_compra_id=orden_de_compra_id) for detalle in detalles: datos = datos + [(separador_de_miles( detalle.descripcion.costo.detalle_orden_de_trabajo. orden_de_trabajo.id), detalle.descripcion.__unicode__(), separador_de_miles(detalle.cantidad), separador_de_miles(detalle.precio_unitario), separador_de_miles(detalle.get_subtotal()))] detalles = DatosDeBolsaOrdenDeCompra.objects.filter( orden_de_compra_id=orden_de_compra_id) for detalle in detalles: datos = datos + [(separador_de_miles( detalle.descripcion.costo.detalle_orden_de_trabajo. orden_de_trabajo.id), detalle.descripcion.__unicode__(), separador_de_miles(detalle.cantidad), separador_de_miles(detalle.precio_unitario), separador_de_miles(detalle.get_subtotal()))] detalles = RevistaOrdenDeCompra.objects.filter( orden_de_compra_id=orden_de_compra_id) for detalle in detalles: datos = datos + [(separador_de_miles( detalle.descripcion.costo.detalle_orden_de_trabajo. orden_de_trabajo.id), detalle.descripcion.__unicode__(), separador_de_miles(detalle.cantidad), separador_de_miles(detalle.precio_unitario), separador_de_miles(detalle.get_subtotal()))] detalles = CompuestoOrdenDeCompra.objects.filter( orden_de_compra_id=orden_de_compra_id) for detalle in detalles: datos = datos + [(separador_de_miles( detalle.descripcion.costo.detalle_orden_de_trabajo. orden_de_trabajo.id), detalle.descripcion.__unicode__(), separador_de_miles(detalle.cantidad), separador_de_miles(detalle.precio_unitario), separador_de_miles(detalle.get_subtotal()))] detalles = PlastificadoOrdenDeCompra.objects.filter( orden_de_compra_id=orden_de_compra_id) for detalle in detalles: datos = datos + [(separador_de_miles( detalle.descripcion.costo.detalle_orden_de_trabajo. orden_de_trabajo.id), detalle.descripcion.__unicode__(), separador_de_miles(detalle.cantidad), separador_de_miles(detalle.precio_unitario), separador_de_miles(detalle.get_subtotal()))] detalles = OtroGastoOrdenDeCompra.objects.filter( orden_de_compra_id=orden_de_compra_id) for detalle in detalles: datos = datos + [(separador_de_miles( detalle.descripcion.costo.detalle_orden_de_trabajo. orden_de_trabajo.id), detalle.descripcion.__unicode__(), separador_de_miles(detalle.cantidad), separador_de_miles(detalle.precio_unitario), separador_de_miles(detalle.get_subtotal()))] detalles = InsumoOrdenDeCompra.objects.filter( orden_de_compra_id=orden_de_compra_id) for detalle in detalles: datos = datos + [('', detalle.descripcion.__unicode__(), separador_de_miles(detalle.cantidad), separador_de_miles(detalle.precio_unitario), separador_de_miles(detalle.get_subtotal()))] t = Table(datos, colWidths=(20 * mm, 100 * mm, 25 * mm, 25 * mm, 25 * mm)) t.setStyle( TableStyle([ ('BACKGROUND', (0, 0), (-1, 0), colors.grey), ('GRID', (0, 0), (-1, -1), 1, colors.black), #('ALIGN',(3,1),(3,-1),'RIGHT'), #('ALIGN',(2,1),(2,-1),'RIGHT'), #('ALIGN',(4,1),(4,-1),'RIGHT'), ])) reporte.append(t) totalapagar = orden_de_compra.get_total() valorletras = "Valor en Letras " + num2words(totalapagar, lang='es') footer1 = Table([[ 'Total a Pagar', separador_de_miles(totalapagar), ]], colWidths=(170 * mm, 25 * mm)) footer1.setStyle( TableStyle([('GRID', (0, 0), (-1, 0), 1, colors.black), ('BOX', (0, 1), (-1, 1), 1, colors.black), ('ALIGN', (0, 0), (-1, -1), 'LEFT')])) footer2 = Table([ [ valorletras, ], ], 195 * mm) footer2.setStyle( TableStyle([('BOX', (0, 0), (-1, -1), 1, colors.black), ('ALIGN', (0, 0), (-1, -1), 'LEFT')])) reporte.append(footer1) reporte.append(footer2) doc.build(reporte) response.write(buff.getvalue()) buff.close() return response