protected void Save() { using (var scope = new TransactionScope()) { try { if (listReceiptProducts.Count > 0) { double TongTien = 0; int TongSoLuong = 0; foreach (var prod in listReceiptProducts) { TongTien += prod.ThanhTien; TongSoLuong += prod.SoLuong; } string MaPhieu = null, strMaPhieu = "PX"; string MAX = (DBDataProvider.DB.ghPhieuGiaoHangs.Count() + 1).ToString(); for (int i = 1; i < (10 - MAX.Length); i++) { strMaPhieu += "0"; } MaPhieu = strMaPhieu + MAX; int IDkhachHang = Int32.Parse(ccbNhaCungCap.Value.ToString()); var KH = DBDataProvider.DB.khKhachHangs.Where(x => x.IDKhachHang == IDkhachHang).FirstOrDefault(); ghPhieuGiaoHang giaohang = new ghPhieuGiaoHang(); giaohang.NgayTao = DateTime.Now; giaohang.MaPhieu = MaPhieu; giaohang.NhanVienID = Formats.IDUser(); giaohang.GhiChuGiaoHang = memoGhiChu.Text; giaohang.KhachHangID = IDkhachHang; giaohang.NgayGiao = Formats.ConvertToDateTime(dateNgayNhap.Text); giaohang.NguoiGiao = ""; giaohang.DiaChiGiaoHang = KH.DiaChi; giaohang.DaXoa = 0; giaohang.TTThanhToan = 0; //0 chưa thanh toán. 1 đã thanh toán giaohang.TrangThai = 0; // chưa duyệt, 1 đã duyệt giaohang.TongSoLuong = TongSoLuong; giaohang.DienThoai = KH.DienThoai; giaohang.ChiNhanhID = Formats.IDChiNhanh(); giaohang.TongTien = TongTien; giaohang.ThanhToan = Convert.ToDouble(spKhachHangThoan.Number); giaohang.GiamGia = Convert.ToDouble(spGiamGia.Number); giaohang.ConLai = (TongTien - (Convert.ToDouble(spGiamGia.Number) + Convert.ToDouble(spKhachHangThoan.Number))); giaohang.STTDonHang = DBDataProvider.STTPhieuGiaoHang_DaiLy(IDkhachHang); DBDataProvider.DB.ghPhieuGiaoHangs.InsertOnSubmit(giaohang); DBDataProvider.DB.SubmitChanges(); int IDPhieuGiaoHang = Convert.ToInt32(giaohang.IDPhieuGiaoHang); hiddenFields["IDPhieuMoi"] = IDPhieuGiaoHang; foreach (var prod in listReceiptProducts) { // insert phiếu giao hàng chi tiết ghPhieuGiaoHangChiTiet chitiet = new ghPhieuGiaoHangChiTiet(); chitiet.PhieuGiaoHangID = IDPhieuGiaoHang; chitiet.HangHoaID = prod.IDHangHoa; chitiet.TonKho = prod.TonKho; chitiet.SoLuong = prod.SoLuong; chitiet.GiaBan = prod.GiaBan; chitiet.GiaVon = prod.GiaVon; chitiet.ThanhTien = prod.ThanhTien; DBDataProvider.DB.ghPhieuGiaoHangChiTiets.InsertOnSubmit(chitiet); // trừ tạm tồn kho. không ghi công nợ, khi duyệt thì ghi thẻ kho + cộng công nợ khách hàng var TonKhoBanDau = DBDataProvider.DB.hhHangHoas.Where(x => x.IDHangHoa == prod.IDHangHoa).FirstOrDefault(); if (TonKhoBanDau != null && TonKhoBanDau.LoaiHHID == 1) { TonKhoBanDau.hhTonKhos.Where(tk => tk.ChiNhanhID == Formats.IDChiNhanh()).FirstOrDefault().SoLuong -= prod.SoLuong; // ghi thẻ kho #region ghi thẻ kho kTheKho thekho = new kTheKho(); thekho.NgayNhap = DateTime.Now; thekho.DienGiai = "Lập phiếu giao hàng#" + MaPhieu; thekho.Nhap = 0; thekho.Xuat = prod.SoLuong; thekho.GiaThoiDiem = prod.GiaBan; thekho.Ton = prod.TonKho - prod.SoLuong; thekho.HangHoaID = TonKhoBanDau.IDHangHoa; thekho.ChiNhanhID = Formats.IDChiNhanh(); thekho.NhanVienID = Formats.IDUser(); DBDataProvider.DB.kTheKhos.InsertOnSubmit(thekho); #endregion } } DBDataProvider.DB.SubmitChanges(); scope.Complete(); cbpInfoImport.JSProperties["cp_Reset"] = true; } else { throw new Exception("Danh sách hàng hóa trống !!"); ccbBarcode.Text = ""; ccbBarcode.Value = ""; ccbBarcode.Focus(); } } catch (Exception ex) { throw ex; } } }
public void LuuThanhToan() { using (var scope = new TransactionScope()) { try { double?SoTienThu = double.Parse(speSoTienTT.Number.ToString()); if (SoTienThu == 0) { throw new Exception("Chưa nhập số tiền thanh toán"); } double?SoNoHienTai = double.Parse(txtCongNoHienTai.Text); if (SoTienThu > SoNoHienTai) { throw new Exception("Số tiền thu không được vượt qua số nợ hiện tại"); } int IDKhachHang = Convert.ToInt32(ccbKhachHang.Value.ToString()); string SoHoaDon = txtHoaDon.Text; string NoiDung = memoNoiDungTT.Text; DateTime NgayThu = Formats.ConvertToDateTime(dateNgayTT.Text); int HinhThucThu = rdlHinhThuc.SelectedIndex == 0 ? 1 : 2; double CongNoCu = double.Parse(txtCongNoHienTai.Text); ghPhieuDaiLyThanhToan thanhtoan = new ghPhieuDaiLyThanhToan(); thanhtoan.STTPhieuThu = DBDataProvider.STTPhieuThanhToan_DaiLy(IDKhachHang); thanhtoan.SoHoaDon = SoHoaDon; thanhtoan.KhachHangID = IDKhachHang; thanhtoan.SoTienThu = SoTienThu; thanhtoan.NoiDung = NoiDung; thanhtoan.NgayThu = NgayThu; thanhtoan.NgayLap = DateTime.Now; thanhtoan.NhanVienThuID = Formats.IDUser(); thanhtoan.HinhThucTTID = HinhThucThu; thanhtoan.CongNoCu = CongNoCu; DBDataProvider.DB.ghPhieuDaiLyThanhToans.InsertOnSubmit(thanhtoan); DBDataProvider.DB.SubmitChanges(); int IDPhieuThu = thanhtoan.IDPhieuThu; khKhachHang KH = DBDataProvider.DB.khKhachHangs.Where(x => x.IDKhachHang == IDKhachHang).FirstOrDefault(); KH.LanCuoiMuaHang = DateTime.Now; if (rdlHinhThuc.SelectedIndex == 0) { //Cap nhat thanh toan phieu giao hang List <ghPhieuGiaoHang> ListPhieuGiaoHang = DBDataProvider.ListPhieuGiaoHang_ASC(IDKhachHang);// phiếu đã được duyệt & chưa thanh toán int i = 0; if (SoTienThu > 0 && ListPhieuGiaoHang.Count > 0) { while (SoTienThu > 0 && i < ListPhieuGiaoHang.Count) { double?TienNoDonHang = ListPhieuGiaoHang[i].ConLai; if (SoTienThu >= TienNoDonHang) //Thanh toán hết đơn hàng { ListPhieuGiaoHang[i].ThanhToan = ListPhieuGiaoHang[i].TongTien; //cập nhật lại thanh toán = tổng tiền ListPhieuGiaoHang[i].ConLai = 0; // cập nhật còn lại = 0; ListPhieuGiaoHang[i].TTThanhToan = 1; // đã thanh toán if (KH != null) { #region ghi nhật ký nhập kho để xem báo cáo khNhatKyCongNo nhatky = new khNhatKyCongNo(); nhatky.NgayNhap = DateTime.Now; nhatky.DienGiai = "Thanh toán"; nhatky.NoDau = KH.CongNo; nhatky.NhapHang = 0; nhatky.GiamGia = 0; nhatky.TraHang = 0; nhatky.MaPhieu = DBDataProvider.STTPhieuThanhToan_DaiLy(IDKhachHang); nhatky.ThanhToan = TienNoDonHang; nhatky.NoCuoi = KH.CongNo - TienNoDonHang; nhatky.NhanVienID = Formats.IDUser(); nhatky.SoPhieu = ListPhieuGiaoHang[i].MaPhieu; nhatky.IDKhachHang = IDKhachHang; DBDataProvider.DB.khNhatKyCongNos.InsertOnSubmit(nhatky); DBDataProvider.DB.SubmitChanges(); #endregion KH.CongNo -= TienNoDonHang; // - công nợ KH.ThanhToan += TienNoDonHang; } SoTienThu -= TienNoDonHang; } else // Thanh toán 1 phần đơn hàng { ListPhieuGiaoHang[i].ThanhToan += SoTienThu; // cộng phần còn lại vào thanh toán. ListPhieuGiaoHang[i].ConLai = ListPhieuGiaoHang[i].TongTien - ListPhieuGiaoHang[i].ThanhToan; // cập nhật phần còn lại //ListPhieuGiaoHang[i].TTThanhToan = 1;// đã thanh toán if (KH != null) { #region ghi nhật ký nhập kho để xem báo cáo khNhatKyCongNo nhatky = new khNhatKyCongNo(); nhatky.NgayNhap = DateTime.Now; nhatky.DienGiai = "Thanh toán"; nhatky.NoDau = KH.CongNo; nhatky.NhapHang = 0; nhatky.TraHang = 0; nhatky.ThanhToan = SoTienThu; nhatky.GiamGia = 0; nhatky.NoCuoi = KH.CongNo - SoTienThu; nhatky.NhanVienID = Formats.IDUser(); nhatky.MaPhieu = DBDataProvider.STTPhieuThanhToan_DaiLy(IDKhachHang); nhatky.SoPhieu = ListPhieuGiaoHang[i].MaPhieu; nhatky.IDKhachHang = IDKhachHang; DBDataProvider.DB.khNhatKyCongNos.InsertOnSubmit(nhatky); DBDataProvider.DB.SubmitChanges(); #endregion KH.CongNo -= SoTienThu; // - công nợ KH.ThanhToan += SoTienThu; } SoTienThu -= SoTienThu; } i++; } } else { // trừ công nợ thẳng. if (KH != null) { #region ghi nhật ký nhập kho để xem báo cáo khNhatKyCongNo nhatky = new khNhatKyCongNo(); nhatky.NgayNhap = DateTime.Now; nhatky.DienGiai = "Thanh toán"; nhatky.NoDau = KH.CongNo; nhatky.NhapHang = 0; nhatky.TraHang = 0; nhatky.GiamGia = 0; nhatky.ThanhToan = SoTienThu; nhatky.NoCuoi = KH.CongNo - SoTienThu; nhatky.NhanVienID = Formats.IDUser(); nhatky.SoPhieu = ""; nhatky.MaPhieu = DBDataProvider.STTPhieuThanhToan_DaiLy(IDKhachHang); nhatky.IDKhachHang = IDKhachHang; DBDataProvider.DB.khNhatKyCongNos.InsertOnSubmit(nhatky); DBDataProvider.DB.SubmitChanges(); #endregion KH.CongNo -= SoTienThu; // - công nợ KH.ThanhToan += SoTienThu; } } } else { // trừ theo phiếu int IDPhieuGiaoHang = int.Parse(ccbPhieuThanhToan.Value.ToString()); ghPhieuGiaoHang PhieuGH = DBDataProvider.DB.ghPhieuGiaoHangs.Single(x => x.IDPhieuGiaoHang == IDPhieuGiaoHang); if (KH != null) { #region ghi nhật ký nhập kho để xem báo cáo khNhatKyCongNo nhatky = new khNhatKyCongNo(); nhatky.NgayNhap = DateTime.Now; nhatky.DienGiai = "Thanh toán"; nhatky.NoDau = KH.CongNo; nhatky.NhapHang = 0; nhatky.TraHang = 0; nhatky.GiamGia = 0; nhatky.MaPhieu = DBDataProvider.STTPhieuThanhToan_DaiLy(IDKhachHang); nhatky.ThanhToan = PhieuGH.ConLai; nhatky.NoCuoi = KH.CongNo - PhieuGH.ConLai; nhatky.NhanVienID = Formats.IDUser(); nhatky.SoPhieu = PhieuGH.MaPhieu; nhatky.IDKhachHang = IDKhachHang; DBDataProvider.DB.khNhatKyCongNos.InsertOnSubmit(nhatky); DBDataProvider.DB.SubmitChanges(); #endregion KH.CongNo -= PhieuGH.ConLai;// - công nợ KH.ThanhToan += PhieuGH.TongTien; } PhieuGH.ThanhToan = PhieuGH.TongTien; PhieuGH.ConLai = 0; PhieuGH.TTThanhToan = 1; } DBDataProvider.DB.SubmitChanges(); scope.Complete(); // Reset(); cbpThanhToan.JSProperties["cp_Reset"] = true; } catch (Exception ex) { throw ex; } } }
protected void Save() { using (var scope = new TransactionScope()) { try { if (listReceiptProducts.Count > 0) { double TongTien = 0; int TongSoLuong = 0; foreach (var prod in listReceiptProducts) { TongTien += prod.ThanhTien; TongSoLuong += prod.SoLuong; } string MaPhieu = null, strMaPhieu = "PX"; string MAX = (DBDataProvider.DB.ghPhieuGiaoHangs.Count() + 1).ToString(); for (int i = 1; i < (7 - MAX.Length); i++) { strMaPhieu += "0"; } MaPhieu = strMaPhieu + MAX; int IDkhachHang = Int32.Parse(ccbNhaCungCap.Value.ToString()); var KH = DBDataProvider.DB.khKhachHangs.Where(x => x.IDKhachHang == IDkhachHang).FirstOrDefault(); ghPhieuGiaoHang giaohang = new ghPhieuGiaoHang(); giaohang.NgayTao = DateTime.Now; giaohang.MaPhieu = MaPhieu; giaohang.NhanVienID = Formats.IDUser(); giaohang.GhiChuGiaoHang = memoGhiChu.Text; giaohang.KhachHangID = IDkhachHang; giaohang.NgayGiao = Formats.ConvertToDateTime(dateNgayNhap.Text); giaohang.NguoiGiao = ""; giaohang.DiaChiGiaoHang = KH.DiaChi; giaohang.DaXoa = 0; giaohang.TTThanhToan = 0; //0 chưa thanh toán. 1 đã thanh toán giaohang.TrangThai = 3; // chưa duyệt, 1 đã duyệt, 3 bán hàng giaohang.TongSoLuong = TongSoLuong; giaohang.DienThoai = KH.DienThoai; giaohang.TongTien = TongTien; giaohang.NgayDuyet = DateTime.Parse(dateNgayNhap.Text); giaohang.GiamGia = Convert.ToDouble(spGiamGia.Number); giaohang.ThanhToan = Convert.ToDouble(spKhachHangThoan.Number); // khách thanh toán giaohang.ConLai = TongTien - (Convert.ToDouble(spGiamGia.Number) + Convert.ToDouble(spKhachHangThoan.Number)); // (-1)*Convert.ToDouble(spTienTraKhach.Number); giaohang.STTDonHang = DBDataProvider.STTPhieuGiaoHang_DaiLy(IDkhachHang); giaohang.SoDonHangTrongNam = DBDataProvider.SoDonHangTrongNam_GiaoHang(); giaohang.CongNoHienTai = KH.CongNo; DBDataProvider.DB.ghPhieuGiaoHangs.InsertOnSubmit(giaohang); DBDataProvider.DB.SubmitChanges(); int IDPhieuGiaoHang = giaohang.IDPhieuGiaoHang; hiddenFields["IDPhieuMoi"] = IDPhieuGiaoHang; foreach (var prod in listReceiptProducts) { // insert phiếu giao hàng chi tiết ghPhieuGiaoHangChiTiet chitiet = new ghPhieuGiaoHangChiTiet(); chitiet.PhieuGiaoHangID = IDPhieuGiaoHang; chitiet.HangHoaID = prod.IDHangHoa; chitiet.TonKho = prod.TonKho; chitiet.SoLuong = prod.SoLuong; chitiet.GiaBan = prod.GiaBan; chitiet.GiaVon = prod.GiaVon; chitiet.ThanhTien = prod.ThanhTien; DBDataProvider.DB.ghPhieuGiaoHangChiTiets.InsertOnSubmit(chitiet); // trừ tạm tồn kho. var TonKhoBanDau = DBDataProvider.DB.hhHangHoas.Where(x => x.IDHangHoa == prod.IDHangHoa).FirstOrDefault(); if (TonKhoBanDau != null) { TonKhoBanDau.TonKho -= prod.SoLuong; var HH = DBDataProvider.DB.hhHangHoas.Where(x => x.IDHangHoa == prod.IDHangHoa).FirstOrDefault(); //ghi thẻ kho #region thẻ kho kTheKho thekho = new kTheKho(); thekho.NgayNhap = DateTime.Now; thekho.DienGiai = "Bán hàng #" + giaohang.MaPhieu; thekho.Nhap = 0; thekho.Xuat = prod.SoLuong; thekho.Ton = HH.TonKho; thekho.GiaThoiDiem = prod.GiaBan; thekho.HangHoaID = HH.IDHangHoa; thekho.NhanVienID = Formats.IDUser(); DBDataProvider.DB.kTheKhos.InsertOnSubmit(thekho); #endregion } } if (Convert.ToDouble(spTienTraKhach.Number) < 0) { // cập nhật công nợ #region nhật ký công nợ khNhatKyCongNo nhatky = new khNhatKyCongNo(); nhatky.NgayNhap = DateTime.Now; nhatky.DienGiai = "Bán hàng"; nhatky.NoDau = KH.CongNo; nhatky.NhapHang = TongTien; nhatky.TraHang = 0; nhatky.GiamGia = Convert.ToDouble(spGiamGia.Number); nhatky.NoCuoi = KH.CongNo += (-1) * Convert.ToDouble(spTienTraKhach.Number); nhatky.ThanhToan = Convert.ToDouble(spKhachHangThoan.Number); nhatky.MaPhieu = DBDataProvider.STTPhieuGiaoHang_DaiLy(IDkhachHang); nhatky.NhanVienID = Formats.IDUser(); nhatky.SoPhieu = giaohang.MaPhieu; nhatky.IDKhachHang = IDkhachHang; DBDataProvider.DB.khNhatKyCongNos.InsertOnSubmit(nhatky); DBDataProvider.DB.SubmitChanges(); #endregion // KH.CongNo += (-1) * Convert.ToDouble(spTienTraKhach.Number); // cộng công nợ } else { #region nhật ký công nợ khNhatKyCongNo nhatky = new khNhatKyCongNo(); nhatky.NgayNhap = DateTime.Now; nhatky.DienGiai = "Bán hàng"; nhatky.NoDau = KH.CongNo; nhatky.NhapHang = TongTien; nhatky.GiamGia = Convert.ToDouble(spGiamGia.Number); nhatky.TraHang = 0; nhatky.NoCuoi = KH.CongNo; nhatky.ThanhToan = Convert.ToDouble(spKhachHangThoan.Number); nhatky.MaPhieu = DBDataProvider.STTPhieuGiaoHang_DaiLy(IDkhachHang); nhatky.NhanVienID = Formats.IDUser(); nhatky.SoPhieu = giaohang.MaPhieu; nhatky.IDKhachHang = IDkhachHang; DBDataProvider.DB.khNhatKyCongNos.InsertOnSubmit(nhatky); DBDataProvider.DB.SubmitChanges(); #endregion } KH.TongTienHang += TongTien; KH.LanCuoiMuaHang = DateTime.Now; DBDataProvider.DB.SubmitChanges(); scope.Complete(); Reset(); cbpInfoImport.JSProperties["cp_Reset"] = true; } else { throw new Exception("Danh sách hàng hóa trống !!"); ccbBarcode.Text = ""; ccbBarcode.Value = ""; ccbBarcode.Focus(); } } catch (Exception ex) { throw ex; } } }
protected void Save() { using (var scope = new TransactionScope()) { try { double TongTien = 0; int TongSoLuong = 0; foreach (var prod in listReceiptProducts) { TongTien += prod.ThanhTien; TongSoLuong += prod.SoLuong; } string MaPhieu = null, strMaPhieu = "PX"; string MAX = (DBDataProvider.DB.ghPhieuGiaoHangs.Count() + 1).ToString(); for (int i = 1; i < (7 - MAX.Length); i++) { strMaPhieu += "0"; } MaPhieu = strMaPhieu + MAX; int IDkhachHang = Int32.Parse(ccbNhaCungCap.Value.ToString()); var KH = DBDataProvider.DB.khKhachHangs.Where(x => x.IDKhachHang == IDkhachHang).FirstOrDefault(); ghPhieuGiaoHang giaohang = new ghPhieuGiaoHang(); giaohang.NgayTao = DateTime.Now; giaohang.MaPhieu = MaPhieu; giaohang.NhanVienID = Formats.IDUser(); giaohang.GhiChuGiaoHang = memoGhiChu.Text; giaohang.KhachHangID = IDkhachHang; giaohang.NgayGiao = Formats.ConvertToDateTime(dateNgayNhap.Text); giaohang.NguoiGiao = ""; giaohang.DiaChiGiaoHang = KH.DiaChi; giaohang.DaXoa = 0; giaohang.TTThanhToan = 0; //0 chưa thanh toán. 1 đã thanh toán giaohang.TrangThai = 0; // chưa duyệt, 1 đã duyệt giaohang.TongSoLuong = TongSoLuong; giaohang.DienThoai = KH.DienThoai; giaohang.TongTien = TongTien; giaohang.ThanhToan = 0; giaohang.ConLai = TongTien; giaohang.STTDonHang = DBDataProvider.STTPhieuGiaoHang_DaiLy(IDkhachHang); DBDataProvider.DB.ghPhieuGiaoHangs.InsertOnSubmit(giaohang); DBDataProvider.DB.SubmitChanges(); int IDPhieuGiaoHang = giaohang.IDPhieuGiaoHang; hiddenFields["IDPhieuMoi"] = IDPhieuGiaoHang; foreach (var prod in listReceiptProducts) { // insert phiếu giao hàng chi tiết ghPhieuGiaoHangChiTiet chitiet = new ghPhieuGiaoHangChiTiet(); chitiet.PhieuGiaoHangID = IDPhieuGiaoHang; chitiet.HangHoaID = prod.IDHangHoa; chitiet.TonKho = prod.TonKho; chitiet.SoLuong = prod.SoLuong; chitiet.GiaBan = prod.GiaBan; chitiet.GiaVon = prod.GiaVon; chitiet.ThanhTien = prod.ThanhTien; DBDataProvider.DB.ghPhieuGiaoHangChiTiets.InsertOnSubmit(chitiet); // trừ tạm tồn kho. không ghi công nợ, khi duyệt thì ghi thẻ kho + cộng công nợ khách hàng var TonKhoBanDau = DBDataProvider.DB.hhHangHoas.Where(x => x.IDHangHoa == prod.IDHangHoa).FirstOrDefault(); if (TonKhoBanDau != null) { TonKhoBanDau.TonKho -= prod.SoLuong; } } DBDataProvider.DB.SubmitChanges(); scope.Complete(); Reset(); cbpInfoImport.JSProperties["cp_Reset"] = true; } catch (Exception ex) { throw ex; } } }