def rellenar_widgets(self): """ Introduce la información del recibo actual en los widgets. """ recibo = self.objeto if recibo.get_cliente() != None: self.cliente = recibo.get_cliente() self.mostrar_info_cliente() self.mostrar_info_facturas() txtimporte = numerals(recibo.importe).upper() self.wids['txt_importe'].get_buffer().set_text(txtimporte) self.wids['e_importe'].set_text( "%s €" % (utils.float2str(recibo.importe))) if recibo != None: for nombre_col in self.dic_campos: self.escribir_valor(recibo.sqlmeta.columns[nombre_col], getattr(recibo, nombre_col), self.dic_campos[nombre_col]) self.objeto.make_swap() else: self.activar_widgets(False) ### Botones anterior/siguiente id_actual = recibo.id siguientes = pclases.Recibo.select(pclases.Recibo.q.id > id_actual ).count() anteriores = pclases.Recibo.select(pclases.Recibo.q.id < id_actual ).count() self.wids['b_anterior'].set_sensitive(anteriores) self.wids['b_siguiente'].set_sensitive(siguientes)
def build_validez(validez): txt_validez = "OFERTA VÁLIDA POR %s DESDE LA FECHA DE ESTE PRESUPUESTO" if validez == 1: mes = "UN MES" else: from numerals import numerals txt_meses = numerals(validez, moneda = "", fraccion = "", autoomitir = True).upper() mes = "%s MESES" % txt_meses txt_validez = txt_validez % (mes) a_derecha = ParagraphStyle("A derecha", parent = estilos["Normal"]) a_derecha.alignment = enums.TA_RIGHT a_derecha.fontName = "Courier" a_derecha.fontSize = 8 return Paragraph(txt_validez, a_derecha)
def rellenar_widgets(self): """ Introduce la información del recibo actual en los widgets. """ recibo = self.objeto if recibo.get_cliente() != None: self.cliente = recibo.get_cliente() self.mostrar_info_cliente() self.mostrar_info_facturas() txtimporte = numerals(recibo.importe).upper() self.wids['txt_importe'].get_buffer().set_text(txtimporte) self.wids['e_importe'].set_text( "%s €" % (utils.float2str(recibo.importe))) if recibo != None: for nombre_col in self.dic_campos: self.escribir_valor(recibo._SO_columnDict[nombre_col], getattr(recibo, nombre_col), self.dic_campos[nombre_col]) self.objeto.make_swap() else: self.activar_widgets(False)
def go_from_facturaVenta(facturaVenta): """ Construye el PDF a partir de un objeto facturaVenta y no de sus datos sueltos. """ cliente = facturaVenta.cliente datos_cliente = {"código": cliente.id, "cif": cliente.cif, "razón social": cliente.nombre, "dirección": cliente.direccion, "población": cliente.ciudad, "provincia": cliente.provincia} if cliente.cp and cliente.cp.strip(): datos_cliente["población"] = (cliente.cp + " - " + datos_cliente["población"]) datos_factura = {"fecha": utils.str_fecha(facturaVenta.fecha), "número": facturaVenta.numfactura, "codcliente": facturaVenta.cliente and `facturaVenta.cliente.id` or ""} iva = cliente.iva # TODO: ¿Usar el float2str_autoprecision? lineas_contenido = [(ldv.producto.codigo, ldv.producto.descripcion, ldv.cantidad, ldv.precio * (1.0 - ldv.descuento) * (1 + iva)) for ldv in facturaVenta.lineasDeVenta] lineas_contenido += [("", srv.concepto, srv.cantidad, srv.precio * (1.0 - srv.descuento) * (1 + iva)) for srv in facturaVenta.servicios] totales = [facturaVenta.calcular_base_imponible(), iva, facturaVenta.calcular_total()] try: dde = pclases.DatosDeLaEmpresa.select()[0] datos_de_la_empresa = [os.path.join("..", "imagenes", dde.logo), dde.nombre + (dde.cif and " (" + dde.str_cif_o_nif() +": " + dde.cif + ")" or ""), dde.direccion, "%s %s (%s), %s" % (dde.cp, dde.ciudad, dde.provincia, dde.pais), ] if dde.fax: if dde.fax.strip() == dde.telefono.strip(): datos_de_la_empresa.append("Telf. y fax: %s" % dde.telefono) else: datos_de_la_empresa.append("Telf.: %s" % (dde.telefono)) datos_de_la_empresa.append("Fax: %s" % (dde.fax)) if dde.email: datos_de_la_empresa.append(dde.email) except IndexError: lineas_empresa = [None] nomarchivo = os.path.join(gettempdir(), "facturaVenta_%s.pdf" % give_me_the_name_baby()) vencimientos = [] forma_de_pago = [] vtos = facturaVenta.vencimientosCobro[:] vtos.sort(lambda v1, v2: (v1.fecha < v2.fecha and 1) or (v1.fecha > v2.fecha and -1) or 0) for v in vtos: strvto = "%s (%s €)" % (utils.str_fecha(v.fecha), utils.float2str(v.importe)) vencimientos.append(strvto) forma_de_pago.append(v.observaciones) observaciones = ["Importa la presente factura:", numerals.numerals(totales[-1], moneda = "EUROS", fraccion = "CÉNTIMOS").upper()] if facturaVenta.observaciones: observaciones.append(facturaVenta.observaciones) return go("Factura de venta %s (%s)" % ( facturaVenta.cliente.nombre, utils.str_fecha(facturaVenta.fecha)), nomarchivo, datos_cliente, datos_factura, lineas_contenido, totales, datos_de_la_empresa, observaciones, vencimientos, forma_de_pago)