本文整理汇总了Python中weboob.capabilities.bank.Account.next_payment_date方法的典型用法代码示例。如果您正苦于以下问题:Python Account.next_payment_date方法的具体用法?Python Account.next_payment_date怎么用?Python Account.next_payment_date使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类weboob.capabilities.bank.Account
的用法示例。
在下文中一共展示了Account.next_payment_date方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_loan_list
# 需要导入模块: from weboob.capabilities.bank import Account [as 别名]
# 或者: from weboob.capabilities.bank.Account import next_payment_date [as 别名]
def get_loan_list(self):
accounts = OrderedDict()
# Old website
for tr in self.doc.xpath('//table[@cellpadding="1"]/tr[not(@class) and td[a]]'):
tds = tr.findall('td')
account = Account()
account.id = CleanText('./a')(tds[2]).split('-')[0].strip()
account.label = CleanText('./a')(tds[2]).split('-')[-1].strip()
account.type = Account.TYPE_LOAN
account.balance = -CleanDecimal('./a', replace_dots=True)(tds[4])
account.currency = account.get_currency(CleanText('./a')(tds[4]))
accounts[account.id] = account
if len(accounts) == 0:
# New website
for table in self.doc.xpath('//div[@class="panel"]'):
title = table.getprevious()
if title is None:
continue
account_type = self.ACCOUNT_TYPES.get(CleanText('.')(title), Account.TYPE_UNKNOWN)
for tr in table.xpath('./table/tbody/tr[contains(@id,"MM_SYNTHESE_CREDITS") and contains(@id,"IdTrGlobal")]'):
tds = tr.findall('td')
if len(tds) == 0 :
continue
for i in tds[0].xpath('.//a/strong'):
label = i.text.strip()
break
if len(tds) == 3 and Decimal(FrenchTransaction.clean_amount(CleanText('.')(tds[-2]))) and any(cls in Attr('.', 'id')(tr) for cls in ['dgImmo', 'dgConso']) == False:
# in case of Consumer credit or revolving credit, we substract avalaible amount with max amout
# to get what was spend
balance = Decimal(FrenchTransaction.clean_amount(CleanText('.')(tds[-2]))) - Decimal(FrenchTransaction.clean_amount(CleanText('.')(tds[-1])))
else:
balance = Decimal(FrenchTransaction.clean_amount(CleanText('.')(tds[-1])))
account = Loan()
account.id = label.split(' ')[-1]
account.label = unicode(label)
account.type = account_type
account.balance = -abs(balance)
account.currency = account.get_currency(CleanText('.')(tds[-1]))
account._card_links = []
if "immobiliers" in CleanText('.')(title):
xp = './/div[contains(@id, "IdDivDetail")]/table/tbody/tr[contains(@id, "%s")]/td'
account.maturity_date = Date(CleanText(xp % 'IdDerniereEcheance'), dayfirst=True, default=NotAvailable)(tr)
account.total_amount = CleanDecimal(CleanText(xp % 'IdCapitalEmprunte'), replace_dots=True, default=NotAvailable)(tr)
account.subscription_date = Date(CleanText(xp % 'IdDateOuverture'), dayfirst=True, default=NotAvailable)(tr)
account.next_payment_date = Date(CleanText(xp % 'IdDateProchaineEcheance'), dayfirst=True, default=NotAvailable)(tr)
account.rate = CleanDecimal(CleanText(xp % 'IdTaux'), replace_dots=True, default=NotAvailable)(tr)
account.next_payment_amount = CleanDecimal(CleanText(xp % 'IdMontantEcheance'), replace_dots=True, default=NotAvailable)(tr)
elif "renouvelables" in CleanText('.')(title):
self.go_loans_conso(tr)
d = self.browser.loans_conso()
if d:
account.total_amount = d['contrat']['creditMaxAutorise']
account.available_amount = d['situationCredit']['disponible']
account.next_payment_amount = d['situationCredit']['mensualiteEnCours']
accounts[account.id] = account
return accounts.values()
示例2: get_list
# 需要导入模块: from weboob.capabilities.bank import Account [as 别名]
# 或者: from weboob.capabilities.bank.Account import next_payment_date [as 别名]
def get_list(self):
accounts = []
for cpt in self.doc.xpath('//div[contains(@class, " compte") and not(contains(@class, "compte_selected"))]'):
# ignore auto assurance accounts
if 'aut' in cpt.get('class'):
continue
account = Account()
account._history_link = Link('./ul/li/a[contains(@id, "consulter_solde") '
'or contains(@id, "historique") '
'or contains(@id, "contrat") '
'or contains(@id, "assurance_vie_operations")]')(cpt)
# this is to test if access to the accounts info is blocked for different reasons
page = self.browser.open(account._history_link).page
if isinstance(page, LoanPage):
account = Loan()
account._history_link = Link('./ul/li/a[contains(@id, "consulter_solde") '
'or contains(@id, "historique") '
'or contains(@id, "contrat") '
'or contains(@id, "assurance_vie_operations")]')(cpt)
if isinstance(page, LoanPage):
account.id = CleanText('(//p[@id="c_montantEmprunte"]//span[@class="valStatic"]//strong)[1]')(cpt)
account.label = CleanText('(//p[@id="c_montantEmprunte"]//span[@class="valStatic"]//strong)[1]')(cpt)
account.type = Account.TYPE_LOAN
account_history_page = page
account.total_amount = account_history_page.get_total_amount()
account.next_payment_amount = account_history_page.get_next_payment_amount()
account.next_payment_date = account_history_page.get_next_payment_date()
account.account_label = account_history_page.get_account_label()
account.subscription_date = account_history_page.get_subscription_date()
account.maturity_date = account_history_page.get_maturity_date()
if len(accounts) == 0:
global_error_message = page.doc.xpath('//div[@id="as_renouvellementMIFID.do_"]/div[contains(text(), "Bonjour")] '
'| //div[@id="as_afficherMessageBloquantMigration.do_"]//div[@class="content_message"] '
'| //p[contains(text(), "Et si vous faisiez de Fortuneo votre banque principale")] '
'| //div[@id="as_renouvellementMotDePasse.do_"]//p[contains(text(), "votre mot de passe")]'
'| //div[@id="as_afficherSecuriteForteOTPIdentification.do_"]//span[contains(text(), "Pour valider ")]')
if global_error_message:
raise ActionNeeded(CleanText('.')(global_error_message[0]))
local_error_message = page.doc.xpath('//div[@id="error"]/p[@class="erreur_texte1"]')
if local_error_message:
raise BrowserUnavailable(CleanText('.')(local_error_message[0]))
number = RawText('./a[contains(@class, "numero_compte")]')(cpt).replace(u'N° ', '')
account.id = CleanText(None).filter(number).replace(u'N°', '')
account._card_links = []
card_link = Link('./ul/li/a[contains(text(), "Carte bancaire")]', default='')(cpt)
if len(card_link) > 0:
account._card_links.append(card_link)
account.label = CleanText('./a[contains(@class, "numero_compte")]/@title')(cpt)
for pattern, type in self.ACCOUNT_TYPES.items():
if pattern in account._history_link:
account.type = type
break
investment_page = None
if account.type in {Account.TYPE_PEA, Account.TYPE_MARKET, Account.TYPE_LIFE_INSURANCE}:
account._investment_link = Link('./ul/li/a[contains(@id, "portefeuille")]')(cpt)
investment_page = self.browser.open(account._investment_link).page
balance = investment_page.get_balance(account.type)
if account.type in {Account.TYPE_PEA, Account.TYPE_MARKET}:
self.browser.investments[account.id] = list(self.browser.open(account._investment_link).page.get_investments(account))
else:
balance = page.get_balance()
if account.type is not Account.TYPE_LOAN:
account.coming = page.get_coming()
if account.type in {Account.TYPE_PEA, Account.TYPE_MARKET}:
account.currency = investment_page.get_currency()
else:
account.currency = account.get_currency(balance)
account.balance = CleanDecimal(None, replace_dots=True).filter(balance)
if account.type in (Account.TYPE_CHECKING, Account.TYPE_SAVINGS):
# Need a token sent by SMS to customers
account.iban = NotAvailable
if (account.label, account.id, account.balance) not in [(a.label, a.id, a.balance) for a in accounts]:
accounts.append(account)
return accounts