예제 #1
0
        // 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);
        }
예제 #2
0
 // 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);
 }
예제 #3
0
 // 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) :"));
 }
예제 #4
0
 // 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
     }
 }
예제 #5
0
        // 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
        }
예제 #6
0
        // 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);
        }
예제 #7
0
        // 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);
        }
예제 #8
0
        // 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;
            }
        }
예제 #9
0
        // 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();
        }