// Ham xu ly in thong tin mot khoan thu chi // ThuChi tc : la khoan thu chi can in static void InMotMucTC(ThuChi tc) { Console.WriteLine("Ma: {0}", tc.ma); // in ma khoan thu chi // du vao loai Thu hay Chi de in ra "Thu vao" hoac "Chi ra" va so tien Console.WriteLine("{0} so tien : {1}", (tc.loaiTC == LoaiThuChi.Thu)?"Thu vao":"Chi ra", // su dung toan tu dieu kien tc.sotien); Console.Write("Cac phan loai : "); // in cac phan loai switch (tc.loaiTC) { case LoaiThuChi.Thu: foreach (PhanLoaiThu plThu in tc.loaiThu) { Console.Write("{0} ", plThu); } break; case LoaiThuChi.Chi: foreach (PhanLoaiChi plChi in tc.loaiChi) { Console.Write("{0} ", plChi); } break; } Console.WriteLine("\nNgay : {0:d2}/{1:d2}/{2:d4}", tc.ngaythang.ngay, tc.ngaythang.thang, tc.ngaythang.nam); }
// Ham tra ra true neu thang va nam cua khoan thu chi bang voi thang nam nao do static bool LaTrungThangNam(int thang, int nam, ThuChi tc) { if (nam == tc.ngaythang.nam && thang == tc.ngaythang.thang) { return(true); } return(false); }
// Ham cho phep nhap vao cac khoan thu chi moi // viec nhap chi dung lai khi nguoi su dung muon static void ThemMucTCMoi() { do { ThuChi tc = ThemMotMucTCMoi(); // nhap thong tin cho tung khoan thu chi listTC.Add(tc); // add vao listTC // hoi nguoi su dung co muon tiep tuc khong } while (XuLyCauHoiYesNo("\nBan co muon nhap them muc khac khong ? (Y/N) :")); }
// XU LY THEM MUC THU CHI MOI #region Them muc thu chi moi // Ham cho phep nhap them n khoan thu chi moi // ham nhap voi so luong nhap xac dinh truoc static void ThemMucTCMoi(int n) { for (int i = 0; i < n; i++) { Console.WriteLine("{0}.", i + 1); ThuChi tc = ThemMotMucTCMoi(); // nhap cho tung khoan thu chi listTC.Add(tc); // add vao listTC } }
// Ham cho nhap thong tin moi vao cho khoan thu chi muon sua thong tin static void SuaMotMucTC(int index) { ThuChi tc = listTC[index]; // lay khoan thu chi muon sua ra bien tc tc.sotien = XulyNhapTien(); // nhap lai tien tc.loaiTC = XulyChonLoaiTC(); // nhap lai loai thu chi XulyNhapPhanLoaiTC(ref tc); // nhap lai cac phan loai tc.ngaythang = XulyNhapNgayThang(); // nhap lai ngay thang listTC[index] = tc; // gan vao lai vi tri cu }
// Ham tra ra truoc neu ngay thang nam cua khoan thu chi la nho hon ngay thang nam nao do // dua tren ngay tuyet doi static bool LaNgayTruoc(ThuChi tc, int ngay, int thang, int nam) { int ngaytuyetdoi1 = NgayTuyetDoi(tc.ngaythang.ngay, tc.ngaythang.thang, tc.ngaythang.nam); int ngaytuyetdoi2 = NgayTuyetDoi(ngay, thang, nam); if (ngaytuyetdoi1 < ngaytuyetdoi2) { return(true); } return(false); }
// Ham xu ly nhap thong tin cho tung khoan thu chi static ThuChi ThemMotMucTCMoi() { ThuChi tc = new ThuChi(); // khoi tao tc.loaiThu = new List <PhanLoaiThu>(); tc.loaiChi = new List <PhanLoaiChi>(); Console.WriteLine("\nMoi ban nhap thong tin thu chi :"); tc.ma = LayMaCuoiCung() + 1; // lay ma lon nhat tang len mot tc.sotien = XulyNhapTien(); // xu ly nhap tien tc.loaiTC = XulyChonLoaiTC(); // xu ly nhap loai thu hay chi XulyNhapPhanLoaiTC(ref tc); // xu ly nhap cac phan loai tc.ngaythang = XulyNhapNgayThang(); // xu ly nhap ngay thang return(tc); }
// Ham xu ly nhap cac phan loai thu chi static void XulyNhapPhanLoaiTC(ref ThuChi tc) { // cho phep nguoi su dung bo qua khong nhap phan loai if (!XuLyCauHoiYesNo("Ban co nhap cac phan loai ? (Y/N):")) { return; } string chuoiphanloai; string[] pls; PhanLoaiThu plThu; PhanLoaiChi plChi; switch (tc.loaiTC) { case LoaiThuChi.Chi: // neu khoan thu chi la loai Chi // in menu cac phan loai chi InMenuPhanLoai("TienDien, TienNuoc, AoQuan, ThucAn, SucKhoe, Khac"); // chuoi phan loai chi duoc nhap vao // cac phan loai cach nhau bang khoang trong chuoiphanloai = Console.ReadLine(); pls = chuoiphanloai.Split(' '); // tach cac phan loai chi foreach (string st in pls) // duyet qua cac phan loai chi tach duoc { if (Enum.TryParse(st, out plChi)) // neu no dung la phan loai chi { tc.loaiChi.Add(plChi); // add vao danh sach cac phan loai chi } } break; case LoaiThuChi.Thu: // neu khoan thu chi la loai Thu // in menu cac phan loai thu InMenuPhanLoai("Luong, Thuong, Lai, Khac"); chuoiphanloai = Console.ReadLine(); // tuong tu phan chi pls = chuoiphanloai.Split(' '); foreach (string st in pls) { if (Enum.TryParse(st, out plThu)) { tc.loaiThu.Add(plThu); } } break; } }
// Ham xu ly doc file static void DocFile(string filename = null) { while (filename == null) // neu khong co ten file thi yeu cau nhap lai { Console.Write("\nNhap duong dan den file du lieu : "); filename = Console.ReadLine(); } // mo file ra de doc StreamReader reader = new StreamReader(filename); if (reader == null) // neu mo bi loi { ThongBaoLoiFile("File ban nhap khong ton tai hoac duong dan sai."); return; // thi thoat khoi ham } // doan code nay chua kiem tra su toan ven cua file du lieu string tam = null; int size; if ((tam = reader.ReadLine()) == null || !int.TryParse(tam, out size)) // neu khong doc duoc dong dau tien hay dong dau tien khong phai so { ThongBaoLoiFile("File bi loi!", reader); return; // file bi loi khong doc nua } ThuChi tc; string sotien = null, loaiTC = null, plThu = null, plChi = null, ngaythang = null; for (int i = 0; i < size; i++) { // doc cac dong tiep theo cua mot khoan thu chi if ((sotien = reader.ReadLine()) == null || (loaiTC = reader.ReadLine()) == null || (plThu = reader.ReadLine()) == null || (plChi = reader.ReadLine()) == null || (ngaythang = reader.ReadLine()) == null) { ThongBaoLoiFile("File bi loi!", reader); return; // neu bi loi thi thoat khoi ham } // neu tot tc = new ThuChi(); tc.loaiThu = new List <PhanLoaiThu>(); tc.loaiChi = new List <PhanLoaiChi>(); tc.ma = LayMaCuoiCung() + 1; // gan ma khoan thu chi tu dong // O DAY, khong lay ma thu chi luu xuong file // vi co the bi trung voi ma thu chi hien co trong danh sach // lay so tien if (!double.TryParse(sotien, out tc.sotien)) { ThongBaoLoiFile("File bi loi!", reader); return; } // lay loai Thu, Chi if (!Enum.TryParse(loaiTC, out tc.loaiTC)) { ThongBaoLoiFile("File bi loi!", reader); return; } // lay cac phan loai Thu string[] sts = plThu.Split(' '); PhanLoaiThu loaiThu; foreach (string st in sts) { if (!Enum.TryParse(st, out loaiThu)) { ThongBaoLoiFile("File bi loi!", reader); return; } else { tc.loaiThu.Add(loaiThu); } } // lay cac phan loai Chi sts = plChi.Split(' '); PhanLoaiChi loaiChi; foreach (string st in sts) { if (!Enum.TryParse(st, out loaiChi)) { ThongBaoLoiFile("File bi loi!", reader); return; } else { tc.loaiChi.Add(loaiChi); } } // xu ly ngay thang sts = ngaythang.Split('/'); if (sts.Length != 3 || !int.TryParse(sts[0], out tc.ngaythang.ngay) || !int.TryParse(sts[1], out tc.ngaythang.thang) || !int.TryParse(sts[2], out tc.ngaythang.nam) || !LaNgayHopLe(tc.ngaythang.ngay, tc.ngaythang.thang, tc.ngaythang.nam)) { ThongBaoLoiFile("File bi loi!", reader); return; } listTC.Add(tc); } // Dong tap tin reader.Close(); }