// Ham xu ly nhap kieu giao dich static GiaoDich.KieuGiaoDich XulyNhapKieuGD() { GiaoDich.KieuGiaoDich kieuGD = GiaoDich.KieuGiaoDich.Thu; // in menu cac kieu giao dich InMenuCacLoai("kieu giao dich", GiaoDich.ChuoiKieuGiaoDich); while (!Enum.TryParse(Console.ReadLine(), out kieuGD)) { Console.WriteLine("Ban nhap khong dung, moi ban nhap lai : "); } return(kieuGD); }
// Ham xu ly nhap thong tin cho tung giao dich // dung duoc cho ca xu ly sua thong tin giao dich // ma : = -1 - nhap mot giao dich moi // != -1 - sua thong tin giao dich da co static GiaoDich ThemMotGDMoi(int ma) { if (ma == -1) { ma = listGD.MaChoGiaoDichMoi; // lay ma giao dich tiep theo } Console.WriteLine("Ma : {0}", ma); GiaoDich.KieuGiaoDich kGD = XulyNhapKieuGD(); // nhap kieu giao dich Console.Write("Chon tai khoan phat sinh giao dich - "); TaiKhoan tk = XulyChonTaiKhoan(); // chon tai khoan phat sinh giao dich TaiKhoan tkNhan = null; // neu la chuyen khoan thi co tai khoan nhan if (kGD == GiaoDich.KieuGiaoDich.ChuyenKhoan) { Console.Write("Chon tai khoan nhan - "); tkNhan = XulyChonTaiKhoan(); // chon tai khoan nhan // cho nay chua xu ly truong hop tkChuyen va tkNhan trung nhau } ThoiGian ngaygd = XulyNhapNgayThangNam("Ngay thang"); // nhap ngay giao dich double sotien = XulyNhapTien("So tien : "); // nhap so tien giao dich GiaoDich.LoaiGiaoDich lGD = XulyNhapLoaiGD(); // nhap loai giao dich Console.Write("Ghi chu : "); string ghichu = Console.ReadLine(); // nhap ghi chu GiaoDich gd = null; switch (kGD) // tao doi tuong phu thuoc vao kieu giao dich { case GiaoDich.KieuGiaoDich.Thu: // tao doi tuong thu gd = new Thu(ma, ngaygd, sotien, tk, lGD, ghichu); break; case GiaoDich.KieuGiaoDich.Chi: // tao doi tuong chi gd = new Chi(ma, ngaygd, sotien, tk, lGD, ghichu); break; case GiaoDich.KieuGiaoDich.ChuyenKhoan: // tao doi tuong chuyen khoan gd = new ChuyenKhoan(ma, ngaygd, sotien, tk, tkNhan, lGD, ghichu); break; } return(gd); }
// Ham tinh tong (co the thu hoac chi) theo phan loai private void TinhTongTheoPhanLoai(List <GiaoDich> list, double[] tong, GiaoDich.KieuGiaoDich kieuGD) { foreach (GiaoDich gd in list) { switch (kieuGD) { case GiaoDich.KieuGiaoDich.Thu: if (gd is Thu) { tong[(int)gd.LoaiGD] += Math.Abs(gd.SoLuong); } break; case GiaoDich.KieuGiaoDich.Chi: if (gd is Chi) { tong[(int)gd.LoaiGD] += Math.Abs(gd.SoLuong); } break; } } }