Untitled
unknown
plain_text
5 months ago
3.1 kB
2
Indexable
from fpdf import FPDF # Definir as informações de venda sales_data = [ {"type": "Carros Americanos", "brand": ["Porsche", "Infiniti", "Audi", "Peugeot", "Nissan"], "price": [250000, 520000, 420000, 250000, 210000], "salesperson": ["Douglas", "Amanda", "Carol", "Jeffy", "Douglas"]}, {"type": "Carros Italianos", "brand": ["Subaru", "Dongfeng Motor", "Toyota", "Hyundai Motors", "Dongfeng Motor"], "price": [250000, 520000, 420000, 250000, 210000], "salesperson": ["Douglas", "Amanda", "Carol", "Jeffy", "Douglas"]} ] # Criar a classe PDF personalizada class SalesReportPDF(FPDF): def header(self): self.set_font('Arial', 'B', 16) self.set_text_color(255, 255, 255) # Cor do texto branco self.set_fill_color(255, 100, 0) # Cor de fundo laranja self.cell(0, 10, 'Relatório de Vendas - Dezembro', 0, 1, 'C', True) self.ln(5) # Adicionar texto informativo self.set_font('Arial', '', 12) self.set_text_color(0, 0, 0) # Cor do texto preto self.cell(0, 10, 'Para o mês de dezembro, foram registrados um total de 10 vendas para o setor de veículos importados.', 0, 1, 'C') self.ln(10) def print_cars_table(self, data, car_type): self.set_font('Arial', '', 12) # Imprimir a linha de resumo self.set_text_color(0, 0, 0) # Cor do texto preto self.cell(0, 10, f"Foram vendidos {len(data['brand'])} {car_type}", 0, 1) self.ln(5) # Imprimir o cabeçalho da tabela self.set_fill_color(255, 100, 0) # Cor de fundo laranja self.set_text_color(255, 255, 255) # Cor do texto branco self.cell(40, 7, 'Marca', 1, 0, 'C', True) self.cell(40, 7, 'Preço', 1, 0, 'C', True) self.cell(40, 7, 'Vendedor', 1, 1, 'C', True) # Imprimir os dados da tabela self.set_text_color(0, 0, 0) # Cor do texto preto fill = False for row in range(len(data["brand"])): self.set_fill_color(255, 255, 255) if fill else self.set_fill_color(240, 240, 240) self.cell(40, 7, data["brand"][row], 1, 0, 'L', fill=fill) self.cell(40, 7, 'R$ {:,.2f}'.format(data["price"][row]), 1, 0, 'R', fill=fill) self.cell(40, 7, data["salesperson"][row], 1, 1, 'L', fill=fill) fill = not fill # Criar o PDF pdf = SalesReportPDF() pdf.add_page() # Imprimir a tabela de carros americanos pdf.set_font('Arial', 'B', 14) pdf.set_text_color(255, 100, 0) # Cor do texto laranja pdf.cell(0, 10, 'Vendas de Carros Americanos', 0, 1) pdf.ln(5) pdf.print_cars_table(sales_data[0], "carros americanos") # Imprimir a tabela de carros italianos pdf.ln(10) # Adicionar espaço entre as tabelas pdf.set_font('Arial', 'B', 14) pdf.set_text_color(255, 100, 0) # Cor do texto laranja pdf.cell(0, 10, 'Vendas de Carros Italianos', 0, 1) pdf.ln(5) pdf.print_cars_table(sales_data[1], "carros italianos") pdf.output('sales_report.pdf', 'F') print("Relatório de vendas gerado com sucesso!")
Editor is loading...
Leave a Comment