Untitled
unknown
plain_text
a year ago
3.1 kB
8
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