Exemple #1
0
    def send_money_result(user, amount):
        print(f'{amount}원 이 이체되었습니다.')

        # 완료 메세지를 위해 예금 계좌 잔액 다시 로드
        accounts = reader.read_all_accounts_in_deposit()
        balance = accounts[user.deposits]['balance']
        print(f'잔액은 {balance}원 입니다.')
    def integrity_check(self) :
        
        # 무결성 검사 
        errorCheck = True   # 에러가 있으면 False로 변경

        # 홈 경로에 데이터 파일이 있는지 확인 
        # 없으면 경고문구 출력, 빈 데이터 파일 생성 
        # 있으면 다음 단계
        user_file_check = fm.make_users()
        history_file_check = fm.make_history()
        account_file_check = fm.make_accounts()

        if user_file_check and history_file_check and account_file_check :
            pass
        else :
            bmv.file_error_output()

        # 데이터 파일 확인 
        # accounts.json, history.json, users.json
        # 예금, 적금 계좌번호 중복확인 
        # 이름, 비밀번호 중복 확인 
        # 문법 규칙 확인 
        ################## keys가 자동으로 중복을 처리해버리는 문제 
        ## json 자체에서 중복이 오류 처리됨
        try :
            users_data = fr.read_all_users()
            if len(set(users_data.keys())) == len(users_data.keys()) :
                pass
            else :
                errorCheck = False
            history_data = fr.read_all_transactions()
            if len(set(history_data.keys())) == len(history_data.keys()) :
                pass
            else :
                errorCheck = False
                
            savings_data = fr.read_all_accounts()
            if len(set(savings_data.keys())) == len(savings_data.keys()) :
                pass
            else :
                errorCheck = False

            deposits_data = fr.read_all_accounts_in_deposit()
            if len(set(deposits_data.keys())) == len(deposits_data.keys()) :
                pass
            else :
                errorCheck = False
        except :
            bmv.error_output()
            errorCheck = False 



        # 오류가 있으면 종료 
        
        
        return errorCheck
Exemple #3
0
    def show_deposit_balance(cls, user):
        super().describe_current_stage('예금 조회')

        accounts = reader.read_all_accounts_in_deposit()
        # for user_deposit in user.deposits:
        balance = accounts[user.deposits]['balance']
        print(f'잔액은 {balance}원 입니다.\n\n')
        print('아무키나 입력하세요')
        input()
Exemple #4
0
    def __withdraw_money_in_deposit_result(user, amount):
        print(f'{amount} 이 출금되었습니다.')

        # 예금 계좌 갱신
        writer.withdraw_money(user.deposits, amount)
        accounts = reader.read_all_accounts_in_deposit()
        balance = accounts[user.deposits]['balance']
        print(f"잔액은 {balance}원 입니다.")

        # 거래 내역 저장
        writer.make_history(user.deposits, '00000000000000', amount,
                            "Deposits_withdraw")
Exemple #5
0
    def __send_money_sub1(cls, user):
        # TODO 금액입력형식 / 계좌번호 입력형식

        money_amount = input()
        if money_amount:
            if prd.dataConfirm(money_amount):
                money_amount = int(prd.dataToBasicType(money_amount))
            else:
                print('잘못된 형식입니다\n아무키나 입력하세요')
                input()
                return
        else:
            print('잘못된 형식입니다\n  아무키나 입력하세요')
            input()
            return
        accounts_sender = reader.read_all_accounts_in_deposit()
        balance = accounts_sender[user.deposits]['balance']

        super().request_keyin('계좌번호')
        account_receiver = input()
        confirm = bd.dataConfirm(account_receiver)
        if confirm:
            account_receiver = bd.dataToBasicType(account_receiver)
            print(f'\n입금액 : {money_amount} 원')
            print(f'계좌번호 : {account_receiver}')
            super().confirm_check('이체')
            keyin_result = keyin.type_in_yes_or_no()
            if keyin_result == 'y' or keyin_result == 'yes':
                pass
            else:
                print('취소하였습니다')
                input()
                return
        else:
            print('잘못된 계좌번호입니다.  아무키나 입력하세요')
            input()
            return

        user_receiver = reader.read_one_users(account_receiver)

        if money_amount < balance:
            writer.withdraw_money(user.deposits, money_amount)
            writer.put_money_in_deposit(user_receiver['accounts'][0],
                                        money_amount)
            writer.make_history(user.deposits, user_receiver['accounts'][0],
                                money_amount, 'Deposits_send')
            cls.send_money_result(user, money_amount)
        else:
            print('''잔액이 부족합니다 아무키나 입력하세요''')
            input()
Exemple #6
0
    def __withdraw_money_in_deposit_sub(cls, user):
        # TODO 올바른 금액 입력 keyin utils

        money_amount = input()
        if money_amount:
            if prd.dataConfirm(money_amount):
                money_amount = int(prd.dataToBasicType(money_amount))
            else:
                print('잘못된 형식입니다\n아무키나 입력하세요')
                input()
                return
        else:
            print('잘못된 형식입니다\n  아무키나 입력하세요')
            input()
            return
        accounts = reader.read_all_accounts_in_deposit()
        balance = accounts[user.deposits]['balance']

        if money_amount < balance:
            cls.__withdraw_money_in_deposit_result(user, money_amount)
        else:
            print('''잔액이 부족합니다 아무키나 입력하세요''')
            input()