internal override void Calculate(int soLuong) { Plus(soLuong); if (TonChiTietInfo.IdChiTiet != 0) { var tonChiTietBckInfo = TonChiTietInfo.Clone() as HangHoa_ChiTietInfo; while (TblHangHoaChiTietDataProvider.Update(TonChiTietInfo) == 0) { TonChiTietInfo = TblHangHoaChiTietDataProvider. GetHangHoaChiTietByMaVach(TonChiTietInfo.IdKho, TonChiTietInfo.IdSanPham, TonChiTietInfo.MaVach, TonChiTietInfo.IdTrungTam); Plus(soLuong); //TonChiTietInfo.DeltaSoLuong = tonChiTietBckInfo.DeltaSoLuong; } } else //if (TonChiTietInfo.SoLuong > 0) { if (TblHangHoaChiTietDataProvider.IsUsedForAnotherProduct(TonChiTietInfo.MaVach, TonChiTietInfo.IdSanPham)) { throw new Exception(String.Format("Mã vạch '{0}' đã được sử dụng cho loại sản phẩm khác!", TonChiTietInfo.MaVach)); } TonChiTietInfo.IdChiTiet = TblHangHoaChiTietDataProvider.Insert(TonChiTietInfo); } }
internal override void Calculate(int soLuong) { var tonChiTietTmpInfo = TonChiTietInfo.Clone() as HangHoa_ChiTietInfo; Minus(soLuong); if (soLuong != 0 && (TonChiTietInfo.SoLuong < 0)) { var soTon = tonChiTietTmpInfo == null ? 0 : tonChiTietTmpInfo.SoLuong; var message = String.Format("Số lượng mã vạch '{0}' {1}, không thể thực hiện được.", tonChiTietTmpInfo.MaVach, soTon > 0 ? "chỉ còn " + soTon : "đã hết"); message += "\nIdSanPham: " + tonChiTietTmpInfo.IdSanPham; message += "\nIdKho: " + tonChiTietTmpInfo.IdKho; message += "\nIdTrungTam: " + tonChiTietTmpInfo.IdTrungTam; message += "\nIdChiTiet: " + tonChiTietTmpInfo.IdChiTiet; throw new TinhTonException(message); } if (soLuong == 0) { return; } if (TonChiTietInfo.IdChiTiet != 0) { while (TblHangHoaChiTietDataProvider.Update(TonChiTietInfo) == 0) { TonChiTietInfo = TblHangHoaChiTietDataProvider. GetHangHoaChiTietByMaVach(TonChiTietInfo.IdKho, TonChiTietInfo.IdSanPham, TonChiTietInfo.MaVach, TonChiTietInfo.IdTrungTam); tonChiTietTmpInfo = TonChiTietInfo.Clone() as HangHoa_ChiTietInfo; //TonChiTietInfo.DeltaSoLuong = tonChiTietTmpInfo.DeltaSoLuong; Minus(soLuong); if (soLuong != 0 && (TonChiTietInfo.SoLuong < 0)) { var soTon = tonChiTietTmpInfo == null ? 0 : tonChiTietTmpInfo.SoLuong; var message = String.Format("Số lượng mã vạch '{0}' {1}, không thể thực hiện được.", tonChiTietTmpInfo.MaVach, soTon > 0 ? "chỉ còn " + soTon : "đã hết"); message += "\nIdSanPham: " + tonChiTietTmpInfo.IdSanPham; message += "\nIdKho: " + tonChiTietTmpInfo.IdKho; message += "\nIdTrungTam: " + tonChiTietTmpInfo.IdTrungTam; message += "\nIdChiTiet: " + tonChiTietTmpInfo.IdChiTiet; throw new TinhTonException(message); } } } }
protected override void Check() { if (TblHangHoaChiTietDataProvider.IsUsedForAnotherProduct(txtMaVach.Text.Trim(), idSanPham)) { throw new ManagedException("Mã vạch đã sử dụng cho 1 sản phẩm khác. Xin hãy kiểm tra lại !"); } int soluong = 0; for (int i = 0; i < liChiTiet.Count; i++) { soluong = soluong + liChiTiet[i].SoLuong; } if (soluong >= Convert.ToInt32(lblSoLuongTon.Text)) { throw new ManagedException("Số lượng mã vạch đã đủ. Không thể nhập thêm !"); } }
protected override void Check() { if (KhoXuatNccDataProvider.Instance.CheckSoLuong(Declare.IdKho, HangHoa.IdSanPham, txtMaVach.Text.Trim())) { throw new ManagedException("Mã vạch hiện không có trong kho. Xin hãy kiểm tra lại !"); } if (TblHangHoaChiTietDataProvider.IsUsedForAnotherProduct(txtMaVach.Text.Trim(), idSanPham)) { throw new ManagedException("Mã vạch đã sử dụng cho 1 sản phẩm khác. Xin hãy kiểm tra lại !"); } int soluong = 0; for (int i = 0; i < liChiTiet.Count; i++) { soluong = soluong + liChiTiet[i].SoLuong; } if (soluong >= Convert.ToInt32(lblSoLuongTon.Text)) { throw new InvalidOperationException("Số lượng mã vạch đã đủ. Không thể nhập thêm !"); } }
protected override void DeleteInstance() { if (dgvList.CurrentRow == null) { return; } ChungTuNhapNccChiTietHangHoaInfo chiTietHangHoaInfo = (ChungTuNhapNccChiTietHangHoaInfo)dgvList.CurrentRow.DataBoundItem; if (TblHangHoaChiTietDataProvider.DaDungChoGiaoDichKhac(chiTietHangHoaInfo.IdChiTietHangHoa)) { throw new ManagedException("Mã vạch đã được sử dụng. Không thể thay đổi!"); } dgvList.Rows.Remove(dgvList.CurrentRow); count--; SoLuongTong = count * HangHoa.DonGia; //btnXoaDong.Enabled = false; lblTongSoLuong.Text = ""; lblthanhtien.Text = ""; lblTongSoLuong.Text = count.ToString(); lblthanhtien.Text = SoLuongTong.ToString(); }
private void Save() { if (txtMaVachTP.Text == "") { throw new ManagedException("Mã vạch cho thành phẩm không được để trống !"); } for (int i = 0; i < lisx.Count; i++) { if (lisx[i].SoLuongDaQuet < lisx[i].SoLuongTrenTPham) { throw new ManagedException("Linh kiện " + lisx[i].TenLinhKien + " chưa nhập đủ số lượng mã vạch !"); } } if (check == 0) { int SoLuongCT = SanXuatLenhProvier.GetSoLuongDNSanXuatLenh( Convert.ToInt32(TransactionType.NHAP_THANH_PHAM_SX), txtMaLenh.Text.Trim(), Declare.MaTrungTam); if (Convert.ToInt32(txtSoLuongYC.Text) <= SoLuongCT) { throw new ManagedException("Số lượng yêu cầu đã đủ, bạn không thể nhập thêm"); } } if (check == 0 && isXuatLoi == false) { if (TblHangHoaChiTietDataProvider.IsUsedForAnotherProduct(txtMaVachTP.Text.Trim(), frm.idThanhPham)) { throw new ManagedException("Mã vạch đã sử dụng cho 1 sản phẩm khác. Xin hãy kiểm tra lại !"); } if (NhapThanhPhamSanXuatDataProvider.Instance.CheckMaVachNTP(frm.idThanhPham, txtMaVachTP.Text.Trim()) > 0) { throw new ManagedException("Mã vạch đã sử dụng cho 1 sản phẩm khác. Xin hãy kiểm tra lại !"); } if (NhapThanhPhamSanXuatDataProvider.Instance.CheckMaVach(frm.idThanhPham, txtMaVachTP.Text.Trim()) > 0) { throw new ManagedException("Mã vạch đã sử dụng cho 1 sản phẩm khác. Xin hãy kiểm tra lại !"); } } for (int i = 0; i < lisx.Count; i++) { if (lisx[i].SoLuongDaQuet < lisx[i].SoLuongTrenTPham) { throw new ManagedException("Bạn chưa nhập đủ số lượng mã vạch cho linh kiện " + lisx[i].MaLinhKien + " !"); } } if (string.IsNullOrEmpty(dtNgayLap.Text)) { dtNgayLap.Focus(); throw new ManagedException("Bạn chưa chọn ngày lập !"); } if (Convert.ToDateTime(dtNgayLap.EditValue) < frm.NgayLap) { dtNgayLap.Focus(); throw new ManagedException("Ngày xuất linh kiện không được nhỏ hơn ngày lập của mã lệnh !"); } try { ConnectionUtil.Instance.BeginTransaction(); if (check == 0) { SaveXuatLinhKien(SaveNhapThanhPham()); SLCT++; } else { XLKBussiness.SaveChungTu(); } txtSoLuongCT.Text = SLCT.ToString(); UpdateSoLuongDaXuat(); if (SanXuatLenhProvier.GetSoLuongSanXuatLenh(Declare.IdKho, Convert.ToInt32(TransactionType.NHAP_THANH_PHAM_SX), txtMaLenh.Text.Trim(), 0) > 0) { SanXuatLenhProvier.UpdateTrangThai(new SanXuatLenhInfo { MaLenh = txtMaLenh.Text.Trim(), MaThanhPham = txtMaThanhPham.Text.Trim(), TrangThai = Convert.ToInt32(TrangThaiSanXuat.DangSX) }); } if (check == 0) { int SoLuongCT = SanXuatLenhProvier.GetSoLuongDNSanXuatLenh( Convert.ToInt32(TransactionType.NHAP_THANH_PHAM_SX), txtMaLenh.Text.Trim(), Declare.MaTrungTam); if (Convert.ToInt32(txtSoLuongYC.Text) < SoLuongCT) { throw new ManagedException("Số lượng yêu cầu đã đủ,bạn không thể nhập thêm"); } } ConnectionUtil.Instance.CommitTransaction(); clsUtils.MsgThongBao("Xuất thành công !"); if (clsUtils.MsgXoa("Bạn có muốn in phiếu bảo hành cho bộ linh kiện không ?") == System.Windows.Forms.DialogResult.Yes) { List <ChungTuNhapNccChiTietHangHoaInfo> lst = new List <ChungTuNhapNccChiTietHangHoaInfo>(); lst.AddRange(liMaVach); frmChonBaoCao frm1 = new frmChonBaoCao(true); frm1.ShowDialog(); if (frm1.DialogResult == DialogResult.OK) { if (frm1.Value == 1) { DMSanPhamInfo sp = DmSanPhamProvider.Instance.GetSanPhamByMa(txtMaThanhPham.Text.Trim()); foreach (ChungTuNhapNccChiTietHangHoaInfo pt in lst) { pt.ThoiHanBH = sp.BaoHanhHang; } rptInPhieuBHSX rpt = new rptInPhieuBHSX(txtTenThanhPham.Text.Trim(), txtMaLenh.Text.Trim(), txtMaVachTP.Text.Trim()); rpt.DataSource = lst; rpt.ShowPreview(); } else { rptInPhieuBHSX rpt = new rptInPhieuBHSX(txtTenThanhPham.Text.Trim(), txtMaLenh.Text.Trim(), txtMaVachTP.Text.Trim()); rpt.DataSource = lst; rpt.ShowPreview(); } } } Clear(); frm.LoadDuLieu(); } catch (Exception ex) { ConnectionUtil.Instance.RollbackTransaction(); throw ex; } }
private void GenSerial() { var result = new List <string>(); var ngayThang = sysDate.ToString("yyMMdd"); if (!(ChungTuChiTietInfo is ChungTuChiTietBaseInfo)) { throw new ManagedException("Không đúng kiểu dữ liệu!"); } sanPhamInfo = DmSanPhamProvider.Instance.GetSanPhamById((ChungTuChiTietInfo as ChungTuChiTietBaseInfo).IdSanPham); var sanPham = sanPhamInfo.MaSanPham.Substring(sanPhamInfo.MaSanPham.LastIndexOf(".") + 1); if (sanPhamInfo.TrungMaVach == 1) { var s = String.Format("{0} {1} {2}", sanPham, MaTrungTam, ngayThang); var count = 0; while (!TblHangHoaChiTietDataProvider.IsNotInUniqueSerial(s) || lstChiTiet.Exists(delegate(T1 match) { return(match is ChungTuChiTietHangHoaBaseInfo && (match as ChungTuChiTietHangHoaBaseInfo).MaVach == s && (match as ChungTuChiTietHangHoaBaseInfo).IdSanPham != sanPhamInfo.IdSanPham); })) { s = String.Format("{0} {1} {2}-{3}", sanPham, MaTrungTam, ngayThang, count); count++; } lstChiTiet.Add(CreateSerial(s)); frmProgress.Instance.Value += 1; return; } //kiểm tra xem nhân viên này đã dùng hết số serial tự sinh chưa //nếu chưa, nếu số lượng serial chưa dùng >= số lượng cần sinh thì không sinh thêm nữa, // ngược lại thì tính lại số lượng serial cần sinh bool isNotUnique; do { isNotUnique = false; var soLuongCanSinhThem = (ChungTuChiTietInfo as ChungTuChiTietBaseInfo).SoLuong - AutoGenSerialProvider.Instance.CountNotUsed(sanPham, MaTrungTam, ngayThang, IdNhanVien); if (soLuongCanSinhThem > 0) { for (var i = 0; i < soLuongCanSinhThem; i++) { var success = false; while (!success) { try { //tăng số nhảy var seqNum = AutoGenSerialProvider.Instance.IncreaseCount(sanPham, MaTrungTam); var serial = String.Format("{0} {1} {2} {3}", sanPham, MaTrungTam, ngayThang, seqNum); if (!TblHangHoaChiTietDataProvider.IsUniqueSerial(serial) || lstChiTiet.Exists(delegate(T1 match) { return(match is ChungTuChiTietHangHoaBaseInfo && (match as ChungTuChiTietHangHoaBaseInfo).MaVach == serial); })) { throw new ManagedException("Mã vạch này đã được sử dụng!"); } //lưu vào bảng quản lý AutoGenSerialProvider.Instance.SaveToManaged(sanPham, MaTrungTam, ngayThang, IdNhanVien, seqNum, 0); frmProgress.Instance.Value += 1; success = true; } catch (Exception) { success = false; } } } foreach (var genCodeInfo in AutoGenSerialProvider.Instance.GetListGenCodeInfo(sanPham, MaTrungTam, IdNhanVien)) { result.Add(String.Format("{0} {1} {2} {3}", genCodeInfo.SanPham, genCodeInfo.TrungTam, genCodeInfo.NgayTao, genCodeInfo.GenCode)); } } else { foreach (var genCodeInfo in AutoGenSerialProvider.Instance.GetListGenCodeInfoInNumRow(sanPham, MaTrungTam, IdNhanVien, (ChungTuChiTietInfo as ChungTuChiTietBaseInfo).SoLuong)) { result.Add(String.Format("{0} {1} {2} {3}", genCodeInfo.SanPham, genCodeInfo.TrungTam, genCodeInfo.NgayTao, genCodeInfo.GenCode)); } } foreach (var s in result) { if (TblHangHoaChiTietDataProvider.IsUniqueSerial(s)) { continue; } isNotUnique = true; AutoGenSerialProvider.Instance.DeleteSerial(s); frmProgress.Instance.Value -= 1; } } while (isNotUnique); foreach (var s in result) { lstChiTiet.Add(CreateSerial(s)); } }
private int TinhTonKho(int idKho, int idSanPham, int soLuong, string maVach) { var dmSanPhamInfo = DmSanPhamProvider.Instance.GetSanPhamById(idSanPham); if (String.IsNullOrEmpty(maVach)) { throw new ManagedException(String.Format("Sản phẩm '{0}' không có mã vạch!", dmSanPhamInfo.MaSanPham)); } var hangHoaInfo = TblHangHoaChiTietDataProvider.GetHangHoaChiTietByMaVach(idKho, idSanPham, maVach, IdTrungTam) ?? new HangHoa_ChiTietInfo { IdKho = idKho, IdSanPham = idSanPham, MaVach = maVach, IdTrungTam = IdTrungTam }; if (soLuong > 0 && BusinessType == BusinessType.REAL_IN) { if (dmSanPhamInfo.TrungMaVach == 0) { if (!TblHangHoaChiTietDataProvider.IsUniqueSerial(hangHoaInfo.MaVach)) { throw new ManagedException(String.Format("Mã vạch '{0}' đã tồn tại trong hệ thống!", hangHoaInfo.MaVach)); } if (soLuong > 1) { throw new ManagedException(String.Format("Mã vạch '{0}' không được phép trùng, số lượng không được lớn hơn 1!", hangHoaInfo.MaVach)); } } else { if (!TblHangHoaChiTietDataProvider.IsNotInUniqueSerial(hangHoaInfo.MaVach)) { throw new ManagedException(String.Format("Mã vạch '{0}' đã tồn tại trong hệ thống!", hangHoaInfo.MaVach)); } } //if(Chit) } if (dmSanPhamInfo == null || dmSanPhamInfo.ChietKhau != 0) { return(hangHoaInfo.IdChiTiet); } if (soLuong == 0) { return(hangHoaInfo.IdChiTiet); //MINHPN cần nhập với số lượng = 0 } var soTon = hangHoaInfo.SoLuong; //if (hangHoaInfo.IdChiTiet == 0) //có thể trong hệ thống đã có mã vạch này { //ChungTuInfo.LoaiChungTu == Convert.ToInt32(TransactionType.NHAP_PO) || //ChungTuInfo.LoaiChungTu == Convert.ToInt32(TransactionType.NHAP_NOIBO) if (ThietLapBaoHanhHang()) { hangHoaInfo.BaoHanhHangTu = ChungTuInfo.NgayLap; hangHoaInfo.BaoHanhHangDen = hangHoaInfo.BaoHanhHangTu.AddMonths(dmSanPhamInfo.BaoHanhHang); } else { hangHoaInfo.BaoHanhHangTu = TblHangHoaChiTietDataProvider.GetNgayBaoHanhByMaVach(maVach, idSanPham); hangHoaInfo.BaoHanhHangDen = hangHoaInfo.BaoHanhHangTu.AddMonths(dmSanPhamInfo.BaoHanhHang); } if (BusinessType == BusinessType.REAL_IN) { if (!ThietLapTuoiTon(hangHoaInfo)) { TblHangHoaChiTietDataProvider.UpdateTuoiTonBaseInfo(maVach, ChungTuInfo.IdChungTu, hangHoaInfo); } if (hangHoaInfo.IdPhieuNhap == 0 && hangHoaInfo.NgayNhapKho_DK == DateTime.MinValue) { TblHangHoaChiTietDataProvider.PendingXacDinhNguonGoc(maVach, ChungTuInfo.IdChungTu, ChungTuInfo.SoChungTu, idSanPham); } } } CreateTonMaVachCalc(hangHoaInfo); TonMaVachCalc.Calculate(soLuong); if (hangHoaInfo.SoLuong < 0) { var message = String.Format("Số lượng mã vạch '{0}' {1}, không thể thực hiện được.", maVach, soTon > 0 ? "chỉ còn " + soTon : "đã hết"); message += "\nIdSanPham: " + idSanPham; message += "\nIdKho: " + idKho; message += "\nIdTrungTam: " + IdTrungTam; throw new TinhTonException(message); } if (dmSanPhamInfo.TrungMaVach == 0 && BusinessType == BusinessType.REAL_IN) { if (soLuong > 0 && hangHoaInfo.SoLuong > 1) { var message = String.Format("Mã vạch '{0}' đã tồn tại.", maVach); message += "\nIdSanPham: " + idSanPham; message += "\nIdKho: " + idKho; message += "\nIdTrungTam: " + IdTrungTam; throw new TinhTonException(message); } } return(hangHoaInfo.IdChiTiet); }