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
                {
                    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;
                }
            }
        }
Beispiel #3
0
        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;
                }
            }
        }