// Ham xu ly sua thong tin cac giao dich static void SuaThongTinGD() { // neu danh sach rong thi bo qua if (listGD.LaRong) { Console.WriteLine("Co so du lieu khong co giao dich nao de sua thong tin."); return; } int ma; Console.WriteLine("\nBan muon sua thong tin cho giao dich nao ?"); do { ma = XulyNhapMaGD("muon sua"); GiaoDich gd = listGD.LayGDVoiMa(ma); if (gd == null) // neu khong co { Console.WriteLine("Giao dich ban nhap khong co trong du lieu."); } else // nguoc lai { Console.WriteLine("Giao dich voi ma {0} co thong tin nhu sau :", gd.Ma); Console.WriteLine(gd); // in lai thong tin hien tai cua giao dich muon sua Console.WriteLine("\nMoi ban nhap thong tin moi cho giao dich tren."); GiaoDich gdMoi = ThemMotGDMoi(ma); // thuc hien nhap thong tin moi cho giao dich listGD.XoaGD(gd); // xoa giao dich cu listGD.ThemGD(gdMoi); // them giao dich moi } } while (XuLyCauHoiYesNo("\nBan co tiep tuc sua thong tin giao dich khac? (Y/N):")); }
// Xoa giao dich public void XoaGD(GiaoDich gd) { foreach (GiaoDichTheoThang gdThang in listThang) { if (gdThang.CoGD(gd)) { gdThang.XoaGD(gd); } } }
// Cai dat giao dien IComparable // de dung trong ham Sort cua cac Colection // vi du: khi them mot giao dich thi sap xep danh sach giao dich theo ngay giao dich public int CompareTo(object o) { GiaoDich temp = o as GiaoDich; if (temp != null) { // sap xep theo ngay giao dich return(this.NgayGD.CompareTo(temp.NgayGD)); } throw new ArgumentException("not a GiaoDich"); }
// CAU TU public GiaoDichTheoThang(GiaoDich gd) { // Mot doi tuong moi cua Giao dich theo thang duoc tao ra // khi co mot giao dich moi ma giao dich do co thang khong trung voi // cac giao dich theo thang da co ThoiGian ngay = gd.NgayGD; this.thangnam = new ThoiGian(1, ngay.Thang, ngay.Nam); listGD = new List <GiaoDich>(); listGD.Add(gd); // add giao dich moi do vao }
// Ham tra ra Giao dich voi ma nao do public GiaoDich LayGDVoiMa(int ma) { GiaoDich gd = null; foreach (GiaoDichTheoThang gdThang in listThang) { gd = gdThang.LayGDVoiMa(ma); if (gd != null) { break; } } return(gd); }
// 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 xu ly in ket qua thong ke theo phan loai va thoi gian static void InKQTKTheoPhanLoai(bool coGD, double tongthu, double tongchi, double[] tongthus, double[] tongchis, int size, string message) { if (!coGD) { Console.WriteLine("Khong co giao dich nao trong thoi gian ban yeu cau thong ke."); Console.ReadLine(); } else { Console.WriteLine(); Console.WriteLine("Tong thu trong {1} : {0}", tongthu, message); Console.WriteLine("Tong chi trong {1} : {0}", tongchi, message); Console.WriteLine(); for (int i = 0; i < size; i++) { int phantramthu, phantramchi; if (tongthu == 0) { phantramthu = 0; } else { phantramthu = (int)(tongthus[i] / Math.Abs(tongthu) * 100); } if (tongchi == 0) { phantramchi = 0; } else { phantramchi = (int)(tongchis[i] / Math.Abs(tongchi) * 100); } Console.WriteLine("Tong thu {0} la {1}, chiem {2}%.", GiaoDich.LayTenLoaiGiaoDich((GiaoDich.LoaiGiaoDich)i), tongthus[i], phantramthu); Console.WriteLine("Tong chi {0} la {1}, chiem {2}%.", GiaoDich.LayTenLoaiGiaoDich((GiaoDich.LoaiGiaoDich)i), tongchis[i], phantramchi); } } }
// Ham cho phep nhap vao cac giao dich moi // viec nhap chi dung lai khi nguoi su dung muon static void ThemGDMoi() { // Kiem tra co tai khoan nao khong if (listTK.LaRong) { // neu khong thi khong the thuc hien giao dich Console.WriteLine("Co so du lieu khong co tai khoan nao de thuc hien giao dich."); return; } do { Console.WriteLine("\nMoi ban nhap thong tin giao dich :"); GiaoDich gd = ThemMotGDMoi(-1); // nhap thong tin cho tung giao dich listGD.ThemGD(gd); // hoi nguoi su dung co muon tiep tuc khong } while (XuLyCauHoiYesNo("\nBan co muon nhap them giao dich khac khong ? (Y/N) : ")); }
// Them giao dich moi public void ThemGD(GiaoDich gd) { int index; GiaoDichTheoThang gdThang; // xem thu giao dich do thuoc thang nam nao if ((index = LayViTriGDThangNam(gd.NgayGD)) != -1) {// neu co thang nam do trong listThang roi thi them giao dich vao listThang[index].ThemGD(gd); } else // neu chua thi tao GiaoDichTheoThang moi { gdThang = new GiaoDichTheoThang(gd); listThang.Add(gdThang); listThang.Sort(); } }
// Sua thong tin giao dich Mo Tai khoan public void SuaTTTK(TaiKhoan tkCu, TaiKhoan tkMoi) { int index; if ((index = LayViTriGDThangNam(tkCu.NgayMo)) == -1) { Console.WriteLine("LOI trong qua trinh sua thong tin TaiKhoan khoan"); Console.ReadLine(); } else { GiaoDichTheoThang gdThang = listThang[index]; index = gdThang.LayViTriGDMoTK(tkCu); GiaoDich gd = gdThang[index]; // lay ra giao dich Mo tai khoan gdThang.XoaGD(gd); // Xoa giao dich Mo tai khoan cu ThemTK(tkMoi); // Them cai moi } }
// Ham xu ly xoa giao dich static void XoaGD() { // neu la rong thi bo qua if (listGD.LaRong) { Console.WriteLine("Co so du lieu khong co giao dich nao de xoa."); return; } int ma; do { ma = XulyNhapMaGD("de xoa"); GiaoDich gd = listGD.LayGDVoiMa(ma); if (gd == null) // neu ma giao dich khong ton tai trong danh sach { Console.WriteLine("Giao dich ban tim khong co trong du lieu."); } else // nguoc lai { Console.WriteLine("Giao dich voi ma {0} co thong tin nhu sau :", gd.Ma); Console.WriteLine(gd); // xac dinh lai y muon xoa giao dich cua nguoi dung if (XuLyCauHoiYesNo("\nBan co that su muon xoa giao dich nay ? (Y/N):")) { // Xoa giao dich khoi danh sach giao dich listGD.XoaGD(gd); Console.WriteLine("Giao dich voi ma {0} da duoc xoa.", ma); Console.ReadKey(); } } } while (XuLyCauHoiYesNo("\nBan co tiep tuc xoa nhung giao dich khac? (Y/N):")); }
// Ham kiem tra co giao dich nao do trong danh sach khong public bool CoGD(GiaoDich gd) { return(listGD.Contains(gd)); }
// Ham xoa giao dich khoi danh sach public void XoaGD(GiaoDich gd) { listGD.Remove(gd); }
// Them giao dich vao danh sach public void ThemGD(GiaoDich gd) { listGD.Add(gd); // them vao cuoi danh sach listGD.Sort(); // sap xep lai danh sach theo ngay giao dich }