#!/usr/bin/env python
# coding: utf-8

# In[89]:


pip install webdriver-manager


# In[90]:


import re
from selenium import webdriver
import os
from pathlib import Path
import datetime
from dateutil.relativedelta import relativedelta
from selenium import webdriver
from selenium.webdriver.support.ui import Select
import pandas as pd
import requests
import json
import csv
import time
import gspread
import traceback
from oauth2client.service_account import ServiceAccountCredentials
import math
import datetime
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive


# In[91]:


##初期設定
asp_id="plus0501"
asp_pw="Q6ceYWdP8Vm3"
login_page="https://www.afi-b.com/"
report_page="https://www.afi-b.com/pa/payment"
asp_name='afib'
#スプレッドシート関連
SPREADSHEET_KEY = '1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY'
TAB_NAME='afb'
spread_json="decoded-cove-298205-261119a2dc7d.json"
#アカウント設定
Acount_name="nakatafumito"
dir_time=datetime.datetime.today().strftime("%Y%m%d")
Download_dir="/Users/"+Acount_name+"/Downloads/"+dir_time+"/"+asp_name


# In[92]:


#ディレクトリ作成
try:
    os.mkdir(Download_dir)
except:
    pass
try:
    os.mkdir(Download_dir)
    print(Download_dir+"にフォルダ作成しました")
except:
    print("すでに"+Download_dir+"にフォルダ作成しています")


# In[93]:


#Selenium設定
from webdriver_manager.chrome import ChromeDriverManager
options = webdriver.ChromeOptions()
prefs = {'download.default_directory' : Download_dir }
options.add_experimental_option('prefs',prefs)
# ドライバのパス設定
driver_path = '/usr/local/bin/chromedriver'

browser = webdriver.Chrome(ChromeDriverManager().install(),chrome_options = options)


# In[94]:


browser.get(login_page)
try:
    #ログイン
    ##ID入力
    id_input = browser.find_element_by_css_selector('#pageTitle > aside.m-grid__itemOrder--01.m-gheader__loginForm > g-header-loginform > div.m-form__wrap > form > div > div:nth-child(1) > input')
    id_input.send_keys(asp_id)
    ##PW入力
    pw_input = browser.find_element_by_css_selector('#pageTitle > aside.m-grid__itemOrder--01.m-gheader__loginForm > g-header-loginform > div.m-form__wrap > form > div > div:nth-child(2) > input')
    pw_input.send_keys(asp_pw)
    ##ログインボタン
    login_btn= browser.find_element_by_css_selector('#pageTitle > aside.m-grid__itemOrder--01.m-gheader__loginForm > g-header-loginform > div.m-form__wrap > form > div > div.m-gLoginGlid__btn > m-btn > div > input')
    login_btn.click()
    #レポートページ移動
    browser.get(report_page)
except:
    pass


# In[95]:


#今日の日付
datetime.date.today()#今日の日付
datetime.date.today().year#年
datetime.date.today().day#日
datetime.date.today().isoformat()
today=datetime.datetime.today().strftime("%Y-%m-%d")
#先月の年月[XXXX年XX月]
now = datetime.datetime.now()
#d = datetime.timedelta(months=1)
#yesterday=(now-d).strftime("%Y-%m-%d")
(now - relativedelta(months=1)).strftime("%Y-%m-%d")
last_month = (now - relativedelta(months=1)).strftime("%Y年%m月")  #年をまたいだ1ヶ月減算
last_month2 = (now - relativedelta(months=2)).strftime("%Y年%m月")  #年をまたいだ2ヶ月減算


# In[96]:


search_txt=last_month+"支払報酬（"+last_month2+"獲得報酬）"


# In[97]:


try:
    #文字列を検索して隣接の値を取得
    last_month_datas=browser.find_element_by_css_selector('#reportTable').find_element_by_xpath(("//*[text()=\""+search_txt+"\"]")).find_element_by_xpath("..").find_element_by_xpath("..").find_element_by_xpath("..").find_elements_by_xpath("td")
    #確定成果金額
    reward_amount= last_month_datas[2].text
    #固定費
    fixed_cost=last_month_datas[3].text
    #成果報酬
    achievement_reward=last_month_datas[4].text
    #支払金額
    payment=last_month_datas[5].text
except:
    reward_amount="エラー：取得できませんでした"
    fixed_cost=""
    achievement_reward=""
    payment=""
    
browser.close()


# In[98]:


#スプレッドシート連携
scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']
credentials = ServiceAccountCredentials.from_json_keyfile_name(spread_json, scope)
gc = gspread.authorize(credentials)
wb = gc.open_by_key(SPREADSHEET_KEY)
worksheet = gc.open_by_key(SPREADSHEET_KEY).worksheet(TAB_NAME)


# In[99]:


new_row = int(len(worksheet.col_values(1)))+ 1
#支払年月
worksheet.update_cell(new_row, 1, search_txt)
#確定成果金額
worksheet.update_cell(new_row, 2, reward_amount)
#固定費
worksheet.update_cell(new_row, 3, fixed_cost)
#成果報酬
worksheet.update_cell(new_row, 4, achievement_reward)
#支払金額
worksheet.update_cell(new_row, 5, payment)


# In[ ]:




