def generate_15g_report(for_member, for_user): fds = FDs() fds_for_member = fds.get_fds_with_first_name(first_name=for_member, for_user=for_user) bank_wise_details, total_interest_all_branches = calculate_bank_wise_interest( fds_for_member) return get_formatted_report(bank_wise_details, total_interest_all_branches)
def test_date_to_str(self): self.assertEqual('20190101', FDs.date_to_str(datetime.datetime(2019, 1, 1))) self.assertEqual('20190102', FDs.date_to_str(datetime.datetime(2019, 1, 2))) self.assertEqual('20190131', FDs.date_to_str(datetime.datetime(2019, 1, 31)))
def test_add_fd(self, mock_delete): fds = FDs(TestConfig) fds.delete_fd(fd_number='fd1', bank_name='b1', bank_branch='br1', for_user='******') mock_delete.assert_called_with(fd_number='fd1', bank_name='b1', bank_branch='br1', for_user='******')
def delete_fd(fd_number, bank_name, bank_branch): fds = FDs() fds.delete_fd(fd_number=fd_number, bank_name=bank_name, bank_branch=bank_branch, for_user=current_user.username) flash( f'Deleted fd( {fd_number} ) from bank( {bank_name} ), branch( {bank_branch} ) successfully !!' ) return redirect(url_for('fd'))
def delete_member(member): fds = FDs() if fds.fds_exists_for_member(member=member, for_user=current_user.username): flash( f'Member( {member} ) has first name / joint name in some FDs, first delete the FDs to delete this member.' ) return redirect(url_for('allMembers')) members = Members() members.delete(member=member, for_user=current_user.username) flash(f'Deleted member( {member} ) successfully !!') return redirect(url_for('allMembers'))
def get_maturing_fds(for_user, till_date): fds = [] for fd in FDs().get_all_fds_till_date(for_user=for_user, till_date=till_date): fds.append({ 'bank_name': fd['bank_name'], 'bank_branch': fd['bank_branch'], 'first_name': fd['first_name'], 'fd_number': fd['fd_number'], 'end_date': fd['end_date'], }) return fds
def test_add_fd(self, mock_add): fds = FDs(TestConfig) fds.add( { 'bank_name': 'bank1', 'bank_branch': 'branch1', 'first_name': 'FirstName', 'joint_name': '', # Optional 'mode': 'Ei/Sur', 'type': 'Quarterly', 'interest_account': 'accountNumber1', # Optional 'fd_number': 'FdNumber1', 'start_date': datetime.datetime(2019, 1, 1), 'end_date': datetime.datetime(2020, 1, 2), 'period': '1 year 1 day', 'roi': 8.25, 'principal_amount': 5000.0, 'maturity_amount': 5000.0, }, for_user='******') mock_add.assert_called_with( new_fd={ 'bank_name': 'bank1', 'bank_branch': 'branch1', 'first_name': 'FirstName', 'joint_name': '', 'mode': 'Ei/Sur', 'type': 'Quarterly', 'interest_account': 'accountNumber1', 'fd_number': 'FdNumber1', 'start_date': '20190101', 'end_date': '20200102', 'period': '1 year 1 day', 'roi': 8.25, 'principal_amount': 5000.0, 'maturity_amount': 5000.0, 'username': '******', })
def fd(): fds = FDs() banks = Banks() members = Members() bank_branches = banks.get_all_bank_branch_names( for_user=current_user.username) form = FDForm( banks.get_all_bank_branch_names(for_user=current_user.username), members.get_members_of_user(user=current_user.username)) if form.validate_on_submit(): fd = { 'bank_name': form.bank_name.data, 'bank_branch': form.bank_branch.data, 'first_name': form.first_name.data, 'joint_name': form.joint_name.data, 'mode': form.mode.data, 'type': form.type.data, 'interest_account': form.interest_account.data, 'fd_number': form.fd_number.data, 'start_date': form.start_date.data, 'end_date': form.end_date.data, 'period': form.period.data, 'roi': form.roi.data, 'principal_amount': form.principal_amount.data, 'maturity_amount': form.maturity_amount.data } fds.add(fd=fd, for_user=current_user.username) flash('New FD added successfully !!') return redirect(url_for('fd')) all_fds = fds.get_all_fds(current_user.username) append_serial_number(all_fds) return render_template('fd/fd.html', title='Fixed Deposits', form=form, fds=all_fds, branches=bank_branches, total_fds=len(all_fds))
def test_get_all_fds_till_date(self, mock_get_all_fds_till_date): fds = FDs(TestConfig) fd1 = {'bank_name': 'bank1', 'bank_branch': 'branch1', 'first_name': 'FirstName1', 'joint_name': '', 'mode': 'Ei/Sur', 'type': 'Quarterly', 'interest_account': 'accountNumber1', 'fd_number': 'FdNumber1', 'start_date': '20190101', 'end_date': '20190501', 'period': '1 year 1 day', 'roi': 8.25, 'principal_amount': 5000.0, 'maturity_amount': 5000.0, } fd2 = {'bank_name': 'bank2', 'bank_branch': 'branch2', 'first_name': 'FirstName2', 'joint_name': '', 'mode': 'Ei/Sur', 'type': 'Quarterly', 'interest_account': 'accountNumber1', 'fd_number': 'FdNumber2', 'start_date': '20190101', 'end_date': '20190505', 'period': '1 year 1 day', 'roi': 8.25, 'principal_amount': 5000.0, 'maturity_amount': 5000.0, } mock_get_all_fds_till_date.return_value = [fd1, fd2] self.assertEqual([ { 'bank_name': 'bank1', 'bank_branch': 'branch1', 'first_name': 'FirstName1', 'fd_number': 'FdNumber1', 'end_date': '20190501', },{ 'bank_name': 'bank2', 'bank_branch': 'branch2', 'first_name': 'FirstName2', 'fd_number': 'FdNumber2', 'end_date': '20190505', } ], get_maturing_fds(for_user='******', till_date='20190505'))
def test_get_all_fds(self, mock_get_all_fds): fd1 = { 'bank_name': 'bank1', 'bank_branch': 'branch1', 'first_name': 'FirstName', 'joint_name': '', 'mode': 'Ei/Sur', 'type': 'Quarterly', 'interest_account': 'accountNumber1', 'fd_number': 'FdNumber1', 'start_date': '20190101', 'end_date': '20200102', 'period': '1 year 1 day', 'roi': 8.25, 'principal_amount': 5000.0, 'maturity_amount': 5000.0, 'username': '******', } fd2 = { 'bank_name': 'bank2', 'bank_branch': 'branch2', 'first_name': 'FirstName', 'joint_name': '', 'mode': 'Ei/Sur', 'type': 'Quarterly', 'interest_account': 'accountNumber2', 'fd_number': 'FdNumber2', 'start_date': '20190101', 'end_date': '20200102', 'period': '1 year 1 day', 'roi': 8.25, 'principal_amount': 5000.0, 'maturity_amount': 5000.0, 'username': '******', } fd3 = { 'bank_name': 'bank2', 'bank_branch': 'branch2', 'first_name': 'FirstName', 'joint_name': '', 'mode': 'Ei/Sur', 'type': 'Quarterly', 'interest_account': 'accountNumber2', 'fd_number': 'FdNumber3', 'start_date': '20190101', 'end_date': '20200102', 'period': '1 year 1 day', 'roi': 8.25, 'principal_amount': 5000.0, 'maturity_amount': 5000.0, 'username': '******', } fd1_without_username = { 'bank_name': 'bank1', 'bank_branch': 'branch1', 'first_name': 'FirstName', 'joint_name': '', 'mode': 'Ei/Sur', 'type': 'Quarterly', 'interest_account': 'accountNumber1', 'fd_number': 'FdNumber1', 'start_date': '20190101', 'end_date': '20200102', 'period': '1 year 1 day', 'roi': 8.25, 'principal_amount': 5000.0, 'maturity_amount': 5000.0, } fd2_without_username = { 'bank_name': 'bank2', 'bank_branch': 'branch2', 'first_name': 'FirstName', 'joint_name': '', 'mode': 'Ei/Sur', 'type': 'Quarterly', 'interest_account': 'accountNumber2', 'fd_number': 'FdNumber2', 'start_date': '20190101', 'end_date': '20200102', 'period': '1 year 1 day', 'roi': 8.25, 'principal_amount': 5000.0, 'maturity_amount': 5000.0, } fd3_without_username = { 'bank_name': 'bank2', 'bank_branch': 'branch2', 'first_name': 'FirstName', 'joint_name': '', 'mode': 'Ei/Sur', 'type': 'Quarterly', 'interest_account': 'accountNumber2', 'fd_number': 'FdNumber3', 'start_date': '20190101', 'end_date': '20200102', 'period': '1 year 1 day', 'roi': 8.25, 'principal_amount': 5000.0, 'maturity_amount': 5000.0, } fds = FDs(TestConfig) mock_get_all_fds.return_value = [fd1, fd2, fd3] self.assertEqual( [fd1_without_username, fd2_without_username, fd3_without_username], fds.get_all_fds(for_user='******'))
def test_fds_exists_for_member(self, mock_fds_exists_for_member): fds = FDs(TestConfig) fds.fds_exists_for_member(member='m1', for_user='******') mock_fds_exists_for_member.assert_called_with(member='m1', for_user='******')