Exemple #1
0
 private void btnNext_Click(object sender, EventArgs e)  //다음 버튼 클릭
 {
     //필수 항목 입력 체크
     if (cbxOutAccount.Text.Trim().Replace(" ", "").Length < 1 || txtOutAccPwd.Text.Trim().Replace(" ", "").Length < 1 ||
         txtPayBack.Text.Trim().Replace(" ", "").Length < 1)
     {
         MessageBox.Show("위의 3가지 항목은 반드시 입력해주세요.");
         return;
     }
     else
     {//출금계좌비번체크
         NormalAccountDB db = new NormalAccountDB();
         if (db.GetEveryData(cbxOutAccount.Text, txtOutAccPwd.Text) == null)
         {
             MessageBox.Show("출금 계좌 정보를 다시 한 번 확인해주세요.");
         }
         else
         {
             string          LoanNum = dgvMember.CurrentRow.Cells[0].Value.ToString();
             frmLoanPayBack2 frm     = new frmLoanPayBack2(loanInfo, txtPayBack.Text, LoanNum);
             frm.Show();
             frm.Activate();
         }
     }
 }
        private void btnNormal_Click(object sender, EventArgs e) //일반 계좌 조회
        {
            dgvMember2.Columns.Clear();

            CommonUtil.AddGridTextColumn(dgvMember2, "계좌 번호", "NAccountNum", 120);
            CommonUtil.AddGridTextColumn(dgvMember2, "생성 날짜", "DateCreated", 120);
            CommonUtil.AddGridTextColumn(dgvMember2, "고객 번호", "CustomerNum");
            CommonUtil.AddGridTextColumn(dgvMember2, "고객 이름", "CustomerName");
            CommonUtil.AddGridTextColumn(dgvMember2, "계좌 종류", "KindOfAcc");
            CommonUtil.AddGridTextColumn(dgvMember2, "비밀번호", "Pwd");
            CommonUtil.AddGridTextColumn(dgvMember2, "현재 잔액", "CurrentMoney");

            try
            {
                NormalAccountDB db = new NormalAccountDB();
                DataTable       dt = db.GetEveryData(CustomerNum);
                if (dt != null)
                {
                    dgvMember2.DataSource = dt;
                }
                db.Dispose();
            }
            catch (Exception)
            {
                MessageBox.Show("계좌 조회에 실패했습니다.");
            }
        }
        public bool CheckOutAccount()     //출금은 무조건 일반 계좌에서만 되기에 일반 계좌 db를 갔다온다
        {
            NormalAccountDB db = new NormalAccountDB();
            DataTable       dt = db.GetEveryData(CustomerNum);

            db.Dispose();
            try
            {
                if (dt != null)     //하나라도 일반 계좌가 있을 떄 비교하는 것
                {
                    StringBuilder sb = new StringBuilder();
                    if (txtOutAccount.Text.Trim().Equals(dt.Rows[0]["NAccountNum"].ToString()))        //일반계정의 계좌번호가 입력한 것과 같을 때
                    {
                        // txtOutAccount.BackColor = Color.Green;
                    }
                    else
                    {
                        sb.Append("귀하의 일반 계좌에 존재하지 않는 계좌번호입니다. \n");
                        MessageBox.Show(sb.ToString());
                        return(false);
                    }
                    if (txtOutPwd.Text.Trim().Equals(dt.Rows[0]["Pwd"].ToString()))            //일반계정의 계좌 비밀번호가 입력한 것과 같을 때
                    {
                        //   txtOutPwd.BackColor = Color.Green;
                    }
                    else
                    {
                        sb.Append("일치하지 않는 계좌 비밀번호입니다.");
                        MessageBox.Show(sb.ToString());
                        return(false);
                    }

                    return(true);
                }
                //계좌가 하나도 없을 때는??
                else
                {
                    MessageBox.Show("귀하의 계좌에 일반 계좌가 없습니다. 일반 계좌를 우선 개설해주세요.");
                    return(false);
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }
        private void frmSending_Load(object sender, EventArgs e)
        {
            lblAlert.Text = "출금 계좌를 먼저 선택해주셔야합니다.";

            db = new NormalAccountDB();

            dt2 = db.WhenYouLoadfrmSending(CustomerNum);        //출금계좌, 예금 계좌, 적금 계좌 콤보박스에 바인딩시키기 위함
            db.Dispose();

            if (dt2 != null)
            {
                IterationRemoval(dt2, "NAccountNum", cbxOutAcc);        //출금 계좌에 바인딩
                IterationRemoval(dt2, "RecentlySentTo", cbxRecently);   //최근 목록에 바인딩
                IterationRemoval(dt2, "DAccountNum", cbxDepositAcc);    //예금 계좌에 바인딩
                IterationRemoval(dt2, "SAccountNum", cbxSavingAcc);     //적금 계좌에 바인딩
            }
            else
            {
                MessageBox.Show("이체 정보를 가져오지 못했습니다. 잠시 후 다시 시도해주세요.");
                return;
            }
        }
        private void 이체ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            NormalAccountDB db = new NormalAccountDB();
            DataTable       dt = db.GetEveryData(CustomerNum);

            if (dt == null)  //일반 계좌가 없을 시
            {
                if (MessageBox.Show("출금 계좌가 존재하지 않습니다. 새로 개설하시겠습니까?", "출금 계좌 정보 없음", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    frmNewAccount frm = new frmNewAccount(customerInfo);
                    frm.ShowDialog();
                    return;
                }
                else
                {
                    return;
                }
            }
            frmSending s1 = new frmSending(customerInfo);

            s1.MdiParent = this;
            s1.Show();
            s1.Activate();
        }
Exemple #6
0
        private void btnNext_Click(object sender, EventArgs e)      //다음 버튼 클릭
        {
            //필수 입력칸들은 반드시 입력할 수 있게 체크
            if (txtAmountOfLoan.Text.Trim().Replace(" ", "").Length < 1 || cbxPayBackMethod.SelectedItem.ToString().Length < 1 ||
                txtPeriod.Text.Trim().Replace(" ", "").Length < 1 || txtOutPwd.Text.Trim().Replace(" ", "").Length < 1 ||
                cbxOutAccount.SelectedItem.ToString().Trim().Replace(" ", "").Length < 1)
            {
                MessageBox.Show("*표시는 필수 입력항목입니다. 반드시 입력해주세요.");
                return;
            }
            //계좌 비밀번호가 4자리가 아닐 시 걸러내기
            if (txtOutPwd.Text.Length != 4)
            {
                MessageBox.Show("계좌 비밀번호는 반드시 4자리여야합니다.");
            }

            //출금계좌와 비밀번호가 일치하는지 확인하기
            NormalAccountDB db = new NormalAccountDB();

            if (db.GetEveryData(cbxOutAccount.SelectedItem.ToString(), txtOutPwd.Text) == null)
            {
                MessageBox.Show("출금 계좌와 비밀번호를 다시 한 번 확인해주세요.");
                return;
            }

            LoanLeftover = Multiply(txtAmountOfLoan.Text, InterestRate).ToString("N0");
            //(Convert.ToInt32(txtAmountOfLoan.Text) * Convert.ToInt32(InterestRate)).ToString();

            //한 번 더 정보가 맞는지 물어보기
            if (MessageBox.Show("대출 정보를 확실하게 확인하신 것이 맞습니까?", "대출 정보 확인", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                frmApplyingForLoan2 frm = new frmApplyingForLoan2(LoanInfo);
                frm.Show();
                frm.Activate();
            }
        }
        private void frmMain_Activated(object sender, EventArgs e)      //메세지 띄우기, 적금이나 예금 만기 한 달 전일 떄 안내 메세지가 팝업 되게 하기
        {
            //적금이나 예금 만기 한 달 전일 떄 안내 메세지가 팝업 되게 하기
            //이 때 선택이 예 이면 각 계좌에서 일반 계좌로 돈을 쏘게 하고, 아니요이면 연장 시키기


            //예금 만기 한달 전일 때
            DepositAccountDB dp = new DepositAccountDB();

            dt = dp.GetExpireData(CustomerNum);



            if (dt != null)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    //만기 한달 전인 예금을 현재 날짜와 비교하여 알려주기
                    if ((dt.Rows[i][1].ToString().Replace(" ", "")) ==
                        DateTime.Now.AddMonths(+1).ToString("yyyyMM").Replace(" ", ""))
                    {
                        if (wannaExtend)
                        {
                            if (MessageBox.Show("만기 예정인 예금이 있습니다. 연장하시겠습니까? \n 연장하지 않을 시 일반계좌로 금액이 반환됩니다.",
                                                "만기 안내", MessageBoxButtons.YesNo) == DialogResult.Yes)
                            {
                                //연장하려하는 예금 폼 띄우기
                                wannaExtend = true;
                                frmDepositExtension frm = new frmDepositExtension(dt, customerInfo);
                                frm.MdiParent = this;
                                frm.Show();
                                frm.Activate();
                            }
                            else    //연장을 원하지 않을 때 , 다음 로그인 때까지 안 뜨게하기
                            {
                                //날짜와 응답을 비교해서 일반계좌로 돈을 보내기
                                wannaExtend = false;
                                MessageBox.Show("만기 날짜가 되면 귀하의 일반 계좌로 만기 예금이 입금됩니다.");
                            }
                        }
                    }

                    //만기날짜가 되었을 때, 예금을 응답 여부에 따라서 일반계좌로 송금해주기
                    if (dt.Rows[i][2].ToString().Replace(" ", "") ==
                        DateTime.Now.ToString("yyyyMMdd").Replace(" ", ""))
                    {
                        if (wannaExtend == false)//응답이 예금을 연장하지 않을 때
                        {
                            //디비 열어서 예금에서 일반으로 송금
                            MessageBox.Show("예금이 만기가 되어 귀하의 일반 계좌로 만기 예금이 입금됩니다.");
                            NormalAccountDB n1 = new NormalAccountDB();
                            if (!n1.UpdateReceiver(dt.Rows[i][10].ToString(), dt.Rows[i][7].ToString()))
                            {
                                MessageBox.Show("일반 계좌로 만기 예금을 송금하는데 실패하였습니다.");
                            }

                            //돈을 송금하고 해당 예금은 삭제합니다.
                            DepositAccountDB db = new DepositAccountDB();
                            if (!db.Delete(CustomerNum, dt.Rows[i][0].ToString()))
                            {
                                MessageBox.Show("만기 예금을 삭제하는데 실패하였습니다.");
                            }
                        }
                        else //응답이 예금을 연장할 때
                        {
                            //그냥 넘어감~ 연장했으니 알림 없이 진행
                        }
                    }
                }
            }


            //만료 한달 전 안내
            SavingDB db2 = new SavingDB();

            dt2 = db2.GetExpireData(CustomerNum);



            if (dt2 != null)
            {
                for (int i = 0; i < dt2.Rows.Count; i++)
                {
                    //만기 한달 전인 적금을 현재 날짜와 비교하여 알려주기
                    if (dt2.Rows[i][1].ToString().Replace(" ", "") ==
                        DateTime.Now.AddMonths(+1).ToString("yyyyMM").Replace(" ", ""))
                    {
                        if (wannaExtendS)
                        {
                            if (MessageBox.Show("만기 예정인 적금이 있습니다. 연장하시겠습니까? \n 연장하지 않을 시 일반계좌로 금액이 반환됩니다.",
                                                "만기 안내", MessageBoxButtons.YesNo) == DialogResult.Yes)
                            {
                                //연장하려하는 적금 폼 띄우기
                                wannaExtendS = true;
                                frmSavingExtension frm2 = new frmSavingExtension(dt2, customerInfo);
                                frm2.MdiParent = this;
                                frm2.Show();
                                frm2.Activate();
                            }
                            else    //연장을 원하지 않을 때
                            {
                                //날짜와 응답을 비교해서 일반계좌로 돈을 보내기

                                wannaExtendS = false;
                                MessageBox.Show("만기 날짜가 되면 귀하의 일반 계좌로 만기 적금이 입금됩니다.");
                            }
                        }
                    }

                    //만기날짜가 되었을 때, 적금을 응답 여부에 따라서 일반계좌로 송금해주기
                    if (dt2.Rows[i][2].ToString().Replace(" ", "") ==
                        DateTime.Now.ToString("yyyyMMdd").Replace(" ", ""))
                    {
                        if (wannaExtendS == false)//응답이 예금을 연장하지 않을 때
                        {
                            //디비 열어서 예금에서 일반으로 송금
                            MessageBox.Show("적금이 만기가 되어 귀하의 일반 계좌로 만기 적금이 입금됩니다.");
                            NormalAccountDB n1 = new NormalAccountDB();
                            if (!n1.UpdateReceiver(dt2.Rows[i][9].ToString(), dt2.Rows[i][6].ToString()))
                            {
                                MessageBox.Show("일반 계좌로 만기 적금을 송금하는데 실패하였습니다.");
                            }

                            //돈을 송금하고 해당 예금은 삭제합니다.
                            SavingDB db = new SavingDB();
                            if (!db.Delete(CustomerNum, dt2.Rows[i][0].ToString()))
                            {
                                MessageBox.Show("만기 적금을 삭제하는데 실패하였습니다.");
                            }
                        }
                        else //응답이 예금을 연장할 때
                        {
                            //그냥 넘어감~ 연장했으니 알림 없이 진행
                        }
                    }
                }
            }

            //적금 기입날 이어서 송금할 것인지 묻는 문자 보내기
            //만약 하루 내에 송금하지 않을 시 적금은 해지되어 일반 계좌로 보내지게 코딩
        }
        private void btnSend_Click(object sender, EventArgs e)      //계좌이체 버튼 클릭
        {
            if (txtAmountOfSending.TextLength < 1 || InputAcc.Length < 1 || cbxOutAcc.SelectedItem.ToString().Length < 1 || txtOutPwd.TextLength < 1)
            {
                MessageBox.Show("필수 입력 항목들은 꼭 입력해주셔야합니다.");
                return;
            }

            //계좌에 남아있는 잔액보다 큰 돈은 보낼 수 없게 체크
            DataTable dt3 = db.GetCurrentMoney(cbxOutAcc.Text);

            if (dt3 != null)
            {       //출금 계좌 잔액에서 이체 금액을 뺀 값이 0보다 작을 경우
                if ((Convert.ToInt32(dt3.Rows[0][0].ToString()) - Convert.ToInt32(txtAmountOfSending.Text)) < 0)
                {
                    MessageBox.Show("계좌 잔액보다 큰 금액은 보낼 수 없습니다.");
                    return;
                }
            }
            else
            {
                MessageBox.Show("출금 계좌의 잔액에 관한 자료를 가져오지 못했습니다.");
                return;
            }
            //내 계좌(일반 > 일반)으로 보내는 경우
            if (cbxOutAcc.Text == InputAcc)
            {
                MessageBox.Show("같은 계좌로 보낼 수는 없습니다.");
                return;
            }
            //내 계좌(예금, 적금)로 보내는 경우
            //이 때도 출금계좌 유효성 체크하자
            if (MyAccountSending.Length > 0)     //내 계좌 항목(예금, 적금)을 선택시 입금계좌 입력 항목을 비게 코딩했음
            {
                ReceiverName = $"{CustomerName}";
                if (MessageBox.Show($@"받으시는 분의 성함이 맞습니까?  
                                                         입금주명 : {ReceiverName}
                                                         입금 계좌 : {InputAcc}",
                                    "이체 정보 확인", (MessageBoxButtons.YesNo)) == DialogResult.Yes)
                {
                    frmSending2 frm = new frmSending2(SendingInfo, MyAccountSending);
                    frm.Show();
                    frm.Activate();
                }
            }
            else
            {
                //내 계좌가 아닌 다른 사람의 일반 계좌로 보내는 경우


                if (MessageBox.Show("입력하신 정보가 맞습니까?", "최종 확인", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    //일반 계좌 db들어가서 입금계좌 정보에 해당하는 고객정보가져오라
                    NormalAccountDB db  = new NormalAccountDB();
                    DataTable       dt2 = db.GetNormalAccountData(InputAcc.Trim().Replace(" ", ""));

                    if (dt2 == null)
                    {
                        MessageBox.Show("해당 입금 계좌가 존재하지 않습니다.\n입금 계좌 정보를 다시 한 번 확인해주세요.");
                        return;
                    }
                    else
                    {
                        ReceiverName = dt2.Rows[0]["CustomerName"].ToString();                          //결과가 뭐라도 나왔으니 수신인 이름에 값을 준다

                        if (db.GetEveryData(cbxOutAcc.SelectedItem.ToString(), txtOutPwd.Text) == null) //출금 계좌 유효성 체크
                        {
                            MessageBox.Show("출금 계좌의 정보를 다시 한 번 확인해주세요.");
                            return;
                        }
                        if (MessageBox.Show($@"받으시는 분의 성함이 맞습니까?  
                                                         입금주명 : {ReceiverName}
                                                         입금 계좌 : {InputAcc}",
                                            "이체 정보 확인", (MessageBoxButtons.YesNo)) == DialogResult.Yes)
                        {
                            frmSending2 frm = new frmSending2(SendingInfo);
                            frm.Show();
                            frm.Activate();
                        }
                    }
                }
            }
        }
        private void btnNewAccount_Click(object sender, EventArgs e)        //계좌 생성 버튼 클릭
        {
            //출금 계좌와 신규 계좌 비밀번호들이 4자리가 아닐 때

            if (cbxKindOfAccount.SelectedItem.ToString().Length < 1)        //계좌 종류 반드시 선택하게하기
            {
                MessageBox.Show("계좌의 종류는 반드시 선택해주셔야합니다.");
                return;
            }
            if (txtNewPwd.Text.Length < 1 || txtCheckNewPwd.Text.Length < 1)        //신규 계좌 정보 꼭 입력하게 하기
            {
                MessageBox.Show("신규 계좌 정보는 반드시 입력해주셔야합니다.");
                return;
            }
            if (cbxKindOfAccount.SelectedItem.ToString() == "일반 계좌")
            {
                if (txtNewPwd.Text.Length != 4)
                {
                    MessageBox.Show("계좌의 비밀번호들은 4자리여야만 합니다.");
                    return;
                }
            }
            else
            {
                if (txtOutPwd.TextLength != 4 || txtNewPwd.Text.Length != 4)
                {
                    MessageBox.Show("계좌의 비밀번호들은 4자리여야만 합니다.");
                    return;
                }
            }

            if (cbxKindOfAccount.SelectedItem.ToString() == "일반 계좌")
            {
                //일반 계좌에 연결
                NormalAccountDB db = new NormalAccountDB();

                if (!db.Insert(accountinfo))
                {
                    MessageBox.Show("실행 도중 오류가 발생하였습니다.");
                    return;
                }
                db.Dispose();
            }
            else if (cbxKindOfAccount.SelectedItem.ToString() == "예금 계좌")
            {
                //가입기간, 출금계좌, 비번, 예치금 입력여부 체크
                if (cbxduration.Text.Length < 1 || txtOutAccount.Text.Length < 1 || txtOutPwd.Text.Length < 1 || txtAmountOfDeposit.Text.Length < 1)
                {
                    MessageBox.Show(@"예금 계좌의 경우 가입 기간, 출금계좌, 
                                     출금계좌의 비밀번호,예치금은 필수 입력입니다.");
                    return;
                }

                //출금 계좌와 비번이 맞는지 확인하는 함수 호출
                if (!CheckOutAccount())
                {
                    return;
                }

                //현재 일반 계좌에서 해당 에치금을 보낼 수 있는지 부터 체크
                NormalAccountDB n            = new NormalAccountDB();
                DataTable       dt           = n.GetCurrentMoney(txtOutAccount.Text);
                string          currentMoney = dt.Rows[0][0].ToString();                      //현재 일반계좌 잔액
                if (Convert.ToInt32(currentMoney) < Convert.ToInt32(txtAmountOfDeposit.Text)) //예치금이 잔액보다 크면 걸러내기
                {
                    MessageBox.Show("출금 계좌의 잔액보다 많은 금액은 예금할 수 없습니다.");
                    return;
                }
                if (!n.UpdateSender(txtAmountOfDeposit.Text, txtOutAccount.Text))
                {
                    MessageBox.Show("실행 도중 오류가 발생하였습니다.");
                }


                //내가 내 계좌내에 보낸 것도 이체 내역에 저장할까?? 고민중
                //예금 계좌에 연결
                DepositAccountDB db = new DepositAccountDB();
                if (!db.Insert(depositInfo))
                {
                    MessageBox.Show("실행 도중 오류가 발생하였습니다.");
                    return;
                }
                db.Dispose();
            }
            else if (cbxKindOfAccount.SelectedItem.ToString() == "적금 계좌")
            {
                //가입기간, 매회 납입금액, 출금 계좌, 비번 체크
                if (cbxduration.Text.Length < 1 || txtpayPerMonth.Text.Length < 1 ||
                    txtOutAccount.Text.Length < 1 || txtOutPwd.Text.Length < 1)
                {
                    MessageBox.Show(@"적금 계좌의 경우 가입 기간, 매회 납입 금액, 출금계좌, 
                                     출금계좌의 비밀번호는 필수 입력입니다.");
                    return;
                }

                if (!CheckOutAccount())      //출금 계좌와 비번이 맞는지 확인하는 함수 호출
                {
                    return;
                }
                //적금 계좌에 연결
                SavingDB db = new SavingDB();

                if (!db.Insert(savingInfo))
                {
                    MessageBox.Show("실행 도중 오류가 발생하였습니다.");
                    return;
                }
                db.Dispose();
            }
            else
            {
                MessageBox.Show("반드시 계좌 종류를 선택하셔야합니다.");
                return;
            }

            MessageBox.Show("계좌 생성이 완료되었습니다.");
            this.Close();
        }