/// <summary> /// Cập nhật lại thông tin sổ tiết kiệm của một sổ bất kỳ /// </summary> /// <param name="id"></param> /// <param name="TienGui"></param> /// <returns></returns> public static bool Update(SoTietKiemDto soTietKiem_DTO) { try { using (QLSoTietKiemDBContext ql = new QLSoTietKiemDBContext()) { var _soTietKiem = ql.SoTietKiem.SingleOrDefault(x => x.MaSTK == soTietKiem_DTO.MaSTK); if (_soTietKiem != null) { _soTietKiem.NgayDenHan = soTietKiem_DTO.NgayDenHan; _soTietKiem.MaNV = soTietKiem_DTO.MaNV; _soTietKiem.MaKhachHang = soTietKiem_DTO.MaKhachHang; _soTietKiem.MaLoaiTien = soTietKiem_DTO.MaLoaiTien; _soTietKiem.MaKyHan = soTietKiem_DTO.MaKyHan; _soTietKiem.NgayHieuLuc = soTietKiem_DTO.NgayHieuLuc; _soTietKiem.TrangThai = soTietKiem_DTO.TrangThai; _soTietKiem.SoTienGui = soTietKiem_DTO.SoTienGui; ql.Entry(_soTietKiem).State = System.Data.Entity.EntityState.Modified; ql.SaveChanges(); return(true); } } return(false); } catch (Exception e) { return(false); } }
/// <summary> /// Tạo sổ mới khi có điều kiện(TH này rất ít xảy ra) /// B1: /// nếu khách hàng muốn lấy số tiền cũ + số tiền mới thêm vào thì tính toán trước khi thêm vào /// 1. nếu khách hàng chưa đủ tháng thì lấy mức lãi xuất vô thường hạn /// 2. nếu khách hàng quá tháng mà số quay vòng = với kỳ hạn gửi(số tháng gửi) thì tính toán bình thường theo /// thời hạn. cứ nghĩ (số tháng hiện tại % số tháng gửi) == 0 /// vd: gửi 3 tháng mà: tháng thứ 3 6 9 thì có thể nhận đủ lãi theo thời hạn 3 tháng /// 3. (số tháng hiện tại % số tháng gửi) != 0 /// Ta sẽ tính như sau: số tháng hiện tại % số tháng gửi chia lấy phần nguyên thì tính theo số 2 như trên /// còn phần dư thì ta tính theo lãi không thời hạn. Sau đó cộng 2 cái đó lại với nhau /// VD: gửi 3 tháng mà: tháng thứ 7 /// 7 % 3 = 2 => A = 2 * số lãi suất /// 7 - 2*3 = 1 => B = 1 * số lãi suất không thời hạn /// Kết quả = A + B /// Kết quả trường hợp 1: Khi tính xong kết quả TH 1 thì ta tính ra số tiền lãi /// Kết quả = Lãi Suất + số tiền cũ + số tiền mới /// B2: /// Sau đó tạo sổ mới cho người gửi nhớ ghi note vào trong sổ mới /// gồm: số tiền cũ + số tháng + lãi xuất + kỳ hạn + ngày Kết sổ(có thể có hoặc không vì nó bằng với ngày mở sổ hiện tại) + sô tài khoản củ /// B3: chuyển trạng thái sổ cũ về 2 /// </summary> /// <param name="maSTK"></param> /// <param name="stkDto"></param> /// <returns>0: Thành công</returns> /// <returns>1: lỗi không tìm thấy</returns> /// <returns>2: lỗi từ server</returns> public static int AddExist(int maSTK, SoTietKiemDto stkDto) { var _soTietKiem = SoTietKiemDao.GetById(maSTK); if (_soTietKiem != null) { return(0); } return(2); }
// click lưu khi thay đổi private void toolStripButton_suadoi_Click(object sender, EventArgs e) { var mstk = textBox_masotk.Text; if (Validation() && mstk != null) { SoTietKiemDto soTietKiem = new SoTietKiemDto() { NgayMo = dateEditCreate.DateTime, NgayHieuLuc = DateTime.Now, NgayDenHan = dateEditDaoHan.DateTime, SoTienGui = Convert.ToDouble(txtTienGui.Text), MaKyHan = Convert.ToInt32(gridLookUpEditKyhan.EditValue), MaLoaiTien = Convert.ToInt32(gridLookUpEditLoaiTien.EditValue), MaNV = Extensions.GetMANV(), MaKhachHang = Convert.ToInt32(grid_khachhang.EditValue), MaSTK = int.Parse(mstk) }; try { if (SoTietKiemBus.Update(soTietKiem)) { this.MoSoTietKiemControl_Load(sender, e); Commons.MessageInfo("Sửa sổ tiết kiệm thành công!"); return; } else { Commons.MessageErr("Đã có lỗi xảy ra, vui lòng thử lại"); return; } } catch (Exception ex) { Commons.MessageErr("Đã có lỗi xảy ra, vui lòng thử lại"); return; } } else { MessageBox.Show("Vui lòng nhập đầy đủ thông tin"); this.MoSoTietKiemControl_Load(sender, e); return; } }
/// <summary> /// Thêm một sổ tiết kiệm vào CSDL /// </summary> /// <param name="stkDto"></param> /// <returns></returns> public static bool Add(SoTietKiemDto stkDto) { try { using (QLSoTietKiemDBContext ql = new QLSoTietKiemDBContext()) { stkDto.GhiChu = "Tạo mới"; stkDto.TrangThai = 1; ql.SoTietKiem.Add(stkDto); ql.SaveChanges(); return(true); } } catch (Exception e) { return(false); } }
/// <summary> /// Thêm một sổ tiết kiệm mới /// </summary> /// <param name="stkDto">SoTietKiemDto</param> /// <returns></returns> public static bool Add(SoTietKiemDto stkDto, int maQuayGD = 1) { if (SoTietKiemDao.Add(stkDto)) { GiaoDichDto giaoDichDto = new GiaoDichDto(); int mastk = SoTietKiemDao.GetSTKTopOne(); giaoDichDto.MaSTK = mastk; giaoDichDto.GhiChu = "Mở sổ tiết kiệm"; giaoDichDto.MaKyH = stkDto.MaKyHan; giaoDichDto.MaNV = stkDto.MaNV; giaoDichDto.MaQuayGD = maQuayGD; giaoDichDto.MaKHang = stkDto.MaKhachHang; giaoDichDto.SoTienGui = stkDto.SoTienGui; giaoDichDto.TongTien = stkDto.SoTienGui; giaoDichDto.TongTienLai = 0; giaoDichDto.TinhTrang = true; giaoDichDto.LoaiGD = 1; giaoDichDto.NgayGiaoDich = DateTime.Now; GiaoDichDao.Add(giaoDichDto); return(true); } return(false); }
/// <summary> /// Cập nhật thông tin của một sổ tiết kiệm /// </summary> /// <param name="soTietKiemDto"></param> /// <returns></returns> public static bool Update(SoTietKiemDto soTietKiemDto, int maQuayGD = 1) { if (SoTietKiemDao.Update(soTietKiemDto)) { // Xóa giao dịch trước khi thực hiện giao dịch mới GiaoDichDao.Delete(soTietKiemDto.MaSTK); GiaoDichDto giaoDichDto = new GiaoDichDto(); giaoDichDto.MaSTK = soTietKiemDto.MaSTK; giaoDichDto.GhiChu = "Mở sổ tiết kiệm"; giaoDichDto.MaKyH = soTietKiemDto.MaKyHan; giaoDichDto.MaNV = soTietKiemDto.MaNV; giaoDichDto.MaQuayGD = maQuayGD; giaoDichDto.MaKHang = soTietKiemDto.MaKhachHang; giaoDichDto.SoTienGui = soTietKiemDto.SoTienGui; giaoDichDto.TongTien = soTietKiemDto.SoTienGui; giaoDichDto.TongTienLai = 0; giaoDichDto.TinhTrang = true; giaoDichDto.LoaiGD = 0; giaoDichDto.NgayGiaoDich = DateTime.Now; GiaoDichDao.Add(giaoDichDto); return(true); } return(false); }