import sys
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.wait import WebDriverWait
from datetime import datetime

from selenium.webdriver.support.expected_conditions import (
    new_window_is_opened
)
from pathlib import Path

import csv 
import os
from datetime import timedelta  


now = datetime.now()
current_time = now.strftime("%H:%M:%S")
valor = ""

argsv = sys.argv
print(argsv)

#parametros =  "011121;081221;c://api//tmp//12345678.txt;acv"
parametros =  "011121;301121;c://api//tmp//12345678911.txt;acv"
#arametros = argsv[1]

aPar = parametros.split(";")

dataInicial_p   	  = aPar[0]
dataFinal_p   		  = aPar[1]
file_p                = aPar[2]
dominio_p             = aPar[3]
 
        
#browser = webdriver.Chrome(chrome_options=options)
browser = webdriver.Chrome()
wdw = WebDriverWait(browser,5)
#data30 = datetime.now() - timedelta(days=30) 
data30 = datetime.now() - timedelta(days=4 ) 
dataInicial_p = data30.strftime("%d%m%y")
dataFinal_p  = now.strftime("%d%m%y")

dataInicial_p = "170523"
dataFinal_p  =  "180523"

print(dataInicial_p)
print(dataFinal_p)


cpf_p ="58557822049"
usuario_p = "Clara"
senha_p = "cbloatra"
dominio_p = "ACV"
browser.get('https://sistema.ssw.inf.br/bin/ssw0422')

dominio = browser.find_element(By.NAME,"f1")
cpf = browser.find_element(By.NAME,"f2")
usuario = browser.find_element(By.NAME,"f3")
senha = browser.find_element(By.NAME,"f4")

dominio.send_keys(dominio_p)
cpf.send_keys(cpf_p)
usuario.send_keys(usuario_p)
senha.send_keys(senha_p)


login = browser.find_element(By.ID,"5")
login.click()
time.sleep(2)
#aguardaMenu = WebDriverWait(browser, 5).until(EC.presence_of_element_located((By.ID, "3")) )
    
opcao= browser.find_element(By.ID,"3")
opcao.clear()
opcao.send_keys("455" + Keys.TAB)

wdw.until(
    new_window_is_opened(browser.window_handles)    
)

#browser.switch_to_window(browser.window_handles[-1] )
#time.sleep(3)


#data_ini_inclusao_despesa data inicial
dataInicial = browser.find_element(By.NAME,"f9")
dataInicial.clear() 
dataInicial.send_keys(dataInicial_p)
time.sleep(1)

#data_fin_inclusao_despesa data final
dataFinal = browser.find_element(By.NAME,"f10")
dataFinal.send_keys(dataFinal_p)
time.sleep(1)

dataInicial1 = browser.find_element(By.NAME,"f11")
dataInicial1.clear() 
time.sleep(1)

dataFinal1 = browser.find_element(By.NAME,"f12")
dataFinal1.clear()
time.sleep(1)


tipo = browser.find_element(By.NAME,"f35")
tipo.clear()
tipo.send_keys("E")
time.sleep(1)



relatorio = browser.find_element(By.ID,"40")
relatorio.click()

    
erro = WebDriverWait(browser, 5).until(EC.visibility_of_element_located((By.ID, "errormsglabel")))
erroConteudo = erro.text
print(erroConteudo)
if (erroConteudo.find("enviada") > -1):
    continuar = WebDriverWait(browser, 5).until(EC.visibility_of_element_located((By.ID, "-1")))
    continuar.click()
    time.sleep(2)
    
    browser.switch_to_window(browser.window_handles[-1] )
    
    parar = False
    tentativas = 1
    qtdeTentativas = 6
    sequencia = ""
    while tentativas <= qtdeTentativas:
        atualiza = browser.find_element_by_id("1")
        atualiza.click()
        time.sleep(2)
        browser.switch_to_window(browser.window_handles[-1] )
        tabela = WebDriverWait(browser, 5).until(EC.presence_of_element_located((By.ID, "tblsr")) )
        linhas = tabela.find_elements_by_tag_name("tr")
        for linha in  linhas:
            colunas = linha.find_elements_by_tag_name("td")
            if (colunas[5].text != "Fone"):
                if (colunas[1].text == '455 - Fretes Expedidos/Recebidos - CTRCs') and (colunas[3].text == 'clara'):
                    if colunas[8].text == 'Baixar':
                        sequencia = colunas[0].text
                        baixar = colunas[8].find_elements_by_tag_name("a")
                        baixar[0].click()
                        time.sleep(5)
                        parar = True
                    break
        tentativas = tentativas + 1
        if parar:
            break
        time.sleep(10)

time.sleep(15)
data_criacao = lambda f: f.stat().st_ctime
data_modificacao = lambda f: f.stat().st_mtime

directory = Path(r'C:\Users\dev1\Downloads')
files = directory.glob('CSV*.sswweb')
sorted_files = sorted(files, key=data_modificacao, reverse=True)
relatorioArquivo = ""
for f in sorted_files:
    relatorioArquivo = f
    break
print(relatorioArquivo)


novoArquivo = os.path.basename(relatorioArquivo).replace(".sswweb", ".csv")
print(novoArquivo)
now = datetime.now()
current_time = now.strftime("_%d_%m_%Y_%H_%M_%S") + "_" + dataInicial_p
novoArquivo =  novoArquivo.replace("[","").replace("]",current_time) 
#arq = "C:\\dev\\api\\arquivo\\" + novoArquivo
arq = "C:\\temp\\" + novoArquivo

f = open(arq, "w")
with open(relatorioArquivo, newline='') as csvfile:
    readCsv = csv.reader(csvfile, delimiter=';')
    i = 0
    for row in readCsv:
        if (row[0] == "1" or row[0] == "2"):
            f.write(";".join(row).replace("1;Ser", "linha;Ser"))
            f.write("\n")

f.close()          

linhas = [valor]
file = open(file_p, 'a+')
file.writelines(linhas)
file.close()

print(file_p)
erro = 0


#browser.quit()

    
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
print("Current Time =", current_time)


