Untitled

 avatar
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