def determineDerivedFields(self, field, useful, derived): is_amount, amount = self.determineAmount(field, useful, derived) if is_amount: return amount elif (field == 'Date'): return self.normalizeDateField(useful[field]) elif (field == 'Credit'): amount = Container.getNegativeAmounts(useful['Amount']) no_commas = re.sub(',','', amount) if float(no_commas) >= 0.0: return amount else: return '' elif (field == 'Debit'): amount = Container.getNegativeAmounts(useful['Amount']) no_commas = re.sub(',','', amount) if float(no_commas) < 0.0: return amount else: return '' elif (field == 'Year'): return Container.convertDateToYear(useful['Date']) elif (field == 'YearMonth'): return Container.convertDateToYearMonth(useful['Date']) elif (field == 'Mechanism'): mech = self.getMethodOfPayment( useful['TransferMech1'], useful['TransferMech2'] ) if useful['TransferMech1'] == "Checking": show_check_number = re.sub( 'Check','Paper Check ',useful['TransferMech2']) return show_check_number if useful['TransferMech2'] == "Bill Payment": show_check_number = re.sub( 'THE LION OF JUDA00','ML BillPay Check ',useful['AccountAlias']) return show_check_number return mech elif (field == 'SimplifiedAlias'): self.simplified_alias = re.sub('[0123456789]+', '', useful['AccountAlias']) self.simplified_alias = Container.String(self.simplified_alias).removeBlanks() return self.simplified_alias elif (field == 'Account'): self.account_name = self.getAccountTitle( useful['AccountAlias'], useful['TransferMech1'], useful['TransferMech2'], ) return self.account_name elif (field == 'Institution'): return self.institutionName() elif (field == 'CenterAccount'): return self.centerAccount() elif (field == 'OrbitAccount'): return derived['Account'] elif (field == 'FromAccount'): if Container.getFloatNoCommas(self.normalizeAmountField(useful['Amount'], useful)) < 0.0: return self.centerAccount() else: return derived['Account'] elif (field == 'ToAccount'): if Container.getFloatNoCommas(self.normalizeAmountField(useful['Amount'], useful)) < 0.0: return derived['Account'] else: return self.centerAccount() elif (field == 'Subcategory'): return self.getSubcategory(self.account_name) elif (field == 'Category'): return self.getCategory(self.account_name) else: return useful[field]
def normalizeAmountField(self, amount_text, row): return Container.getNegativeAmounts(amount_text)