from docxtpl import DocxTemplate
import pandas as pd
from time import sleep
from datetime import datetime, date

#? Importação do Template e da Planilha.
doc = DocxTemplate('Entrada\TemplateC.docx')
rec = DocxTemplate('Entrada\TemplateR.docx')
base = pd.read_excel('Entrada\Fatura_Base.xls')

#? Inicia o Laço que irá percorrer cada linha do Data Frame.
def Carta_Automatica():
    print('Iniciando Função = Carta Automática\n')
    sleep(1)
    index = 0
    for i in range(len(base)):
        primeira_linha = base.iloc[index]
        index = index + 1
        context = dict(primeira_linha)

        #? Extrai o dado de cada linha para ser usado no nome do novo arquivo.
        numero_SOE = primeira_linha['ID']
        CNPJ = primeira_linha['CNPJ']
        n_carta = primeira_linha['Carta_fatura']

        nome_do_arquivo = f'Carta_Fatura ID {int(numero_SOE)} - N°{int(n_carta)} - CNPJ {int(CNPJ)}.docx'

        #? Renderiza e salva o Doc.
        doc.render(context)
        doc.save(f'Saida\Carta_Fatura\ {nome_do_arquivo}')
        print(f'Carta {int(n_carta)} criada com sucesso!')


def Recibo_Automatico():
    print('Iniciando Função = Recibo Automático\n')
    sleep(1)
    index = 0
    for i in range(len(base)):
        primeira_linha = base.iloc[index]
        index = index + 1
        context = dict(primeira_linha)

        #? Extrai o dado de cada linha para ser usado no nome do novo arquivo.
        numero_SOE = primeira_linha['ID']
        CNPJ = primeira_linha['CNPJ']
        N_recibo = primeira_linha['N_recibo']

        nome_do_arquivo = f'Recibo ID {int(numero_SOE)} - N°{int(N_recibo)} - CNPJ {int(CNPJ)}.docx'

        #? Renderiza e salva o Recibo.
        rec.render(context)
        rec.save(f'Saida\Recibo_BA\ {nome_do_arquivo}')
        print(f'Recibo {int(N_recibo)} criada com sucesso!')


def Protocolo():
    #Carta_Automatica()
    Recibo_Automatico()


Protocolo()