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

                        double ThanhToan = Convert.ToDouble(spThanhToan.Number);
                        double ConLai    = TongTien - ThanhToan;

                        string MaPhieu = null, strMaPhieu = "PN";
                        //string MAX = (DBDataProvider.DB.kNhapKhos.Where(r => r.TrangThaiPhieu == 0).Count() + 1).ToString();
                        string MAX = (DBDataProvider.DB.kNhapKhos.Count() + 1).ToString();
                        for (int i = 1; i < (7 - MAX.Length); i++)
                        {
                            strMaPhieu += "0";
                        }
                        MaPhieu = strMaPhieu + MAX;

                        int IDNCC = Int32.Parse(ccbNhaCungCap.Value.ToString());
                        //Insert vào bảng nhập kho
                        kNhapKho nhapKho = new kNhapKho();
                        nhapKho.NCCID          = IDNCC;
                        nhapKho.MaPhieu        = MaPhieu;
                        nhapKho.SoHoaDon       = txtSoHoaDon.Text;;
                        nhapKho.NgayNhap       = Formats.ConvertToDateTime(dateNgayNhap.Text);
                        nhapKho.NguoiNhapID    = Formats.IDUser();
                        nhapKho.TongTien       = TongTien;
                        nhapKho.TrangThaiPhieu = 0;// 1 phiếu tạm, 2 phiếu xóa, 0 phiếu nhập
                        nhapKho.TongSoLuong    = TongSoLuong;
                        nhapKho.GhiChu         = memoGhiChu.Text;
                        nhapKho.NgayTao        = DateTime.Now;
                        nhapKho.DaXoa          = 0;
                        nhapKho.ThanhToan      = ThanhToan;
                        nhapKho.CongNo         = ConLai;// nợ đơn hàng

                        if (ConLai == 0)
                        {
                            nhapKho.TTThanhToan = 1;
                        }
                        nhapKho.TTThanhToan = 0;
                        DBDataProvider.DB.kNhapKhos.InsertOnSubmit(nhapKho);
                        DBDataProvider.DB.SubmitChanges();
                        int IDNhap = nhapKho.IDNhapKho;
                        nhapKho.Url = "TraHang.aspx?id=" + IDNhap;
                        foreach (var prod in listReceiptProducts)
                        {
                            //Insert vào chi tiết nhập kho
                            kNhapKhoChiTiet detailNhapKho = new kNhapKhoChiTiet();
                            detailNhapKho.NhapKhoID = IDNhap;
                            detailNhapKho.HangHoaID = prod.IDHangHoa;
                            detailNhapKho.GiaVon    = prod.GiaVon;
                            detailNhapKho.SoLuong   = prod.SoLuong;
                            detailNhapKho.ThanhTien = prod.ThanhTien;
                            detailNhapKho.GiaBan    = prod.GiaBanMoi;
                            detailNhapKho.TonKho    = prod.TonKho;
                            DBDataProvider.DB.kNhapKhoChiTiets.InsertOnSubmit(detailNhapKho);
                            DBDataProvider.DB.SubmitChanges();

                            //Cập nhật || Thêm tồn kho
                            var TonKhoBanDau = DBDataProvider.DB.hhHangHoas.Where(x => x.IDHangHoa == prod.IDHangHoa).FirstOrDefault();
                            if (TonKhoBanDau != null)
                            {
                                TonKhoBanDau.TonKho += prod.SoLuong;
                                #region ghi thẻ kho
                                kTheKho thekho = new kTheKho();
                                thekho.NgayNhap    = DateTime.Now;
                                thekho.DienGiai    = "Nhập hàng #" + MaPhieu;
                                thekho.Nhap        = prod.SoLuong;
                                thekho.Xuat        = 0;
                                thekho.GiaThoiDiem = prod.GiaVon;
                                thekho.Ton         = prod.SoLuong + prod.TonKho;
                                thekho.HangHoaID   = TonKhoBanDau.IDHangHoa;
                                thekho.NhanVienID  = Formats.IDUser();
                                DBDataProvider.DB.kTheKhos.InsertOnSubmit(thekho);
                                #endregion
                            }
                            hhHangHoa hang = DBDataProvider.DB.hhHangHoas.Where(x => x.IDHangHoa == prod.IDHangHoa).FirstOrDefault();

                            // cập nhật giá nhập trung bình cho hàng hóa

                            var GiaVonTB = DBDataProvider.DB.spAVG_IDHangHoa(Convert.ToInt32(hang.IDHangHoa)).FirstOrDefault();
                            hang.GiaVon = Convert.ToDouble(GiaVonTB.GiaNhapTrungBinh);
                            // thay đổi giá bán nếu khác giá bán cũ
                            if (prod.GiaBanMoi != prod.GiaBanCu)
                            {
                                hang.GiaBan = prod.GiaBanMoi;
                            }
                        }
                        //update công nợ
                        khKhachHang Supplier = DBDataProvider.DB.khKhachHangs.Where(x => x.IDKhachHang == IDNCC).FirstOrDefault();
                        if (Supplier != null)
                        {
                            #region ghi nhật ký nhập kho để xem báo cáo
                            khNhatKyCongNo nhatky = new khNhatKyCongNo();
                            nhatky.NgayNhap    = DateTime.Now;
                            nhatky.DienGiai    = "Nhập kho";
                            nhatky.NoDau       = Supplier.CongNo;
                            nhatky.NhapHang    = TongTien;
                            nhatky.TraHang     = 0;
                            nhatky.NoCuoi      = Supplier.CongNo + ConLai;
                            nhatky.ThanhToan   = ThanhToan;
                            nhatky.NhanVienID  = Formats.IDUser();
                            nhatky.GiamGia     = 0;
                            nhatky.SoPhieu     = MaPhieu;
                            nhatky.IDKhachHang = IDNCC;
                            DBDataProvider.DB.khNhatKyCongNos.InsertOnSubmit(nhatky);
                            DBDataProvider.DB.SubmitChanges();
                            #endregion

                            nhapKho.CongNoCu        = Supplier.CongNo;
                            nhapKho.CongNoMoi       = Supplier.CongNo + ConLai;
                            Supplier.TongTienHang  += TongTien;
                            Supplier.CongNo        += ConLai;
                            Supplier.LanCuoiMuaHang = DateTime.Now;
                        }

                        DBDataProvider.DB.SubmitChanges();
                        scope.Complete();
                        cbpInfoImport.JSProperties["cp_Reset"] = true;
                    }
                    else
                    {
                        throw new Exception("Danh sách nhập kho trống !!");
                        ccbBarcode.Text  = "";
                        ccbBarcode.Value = "";
                        ccbBarcode.Focus();
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
        private void Import_Temp(DataTable datatable)
        {
            int intRow = datatable.Rows.Count;

            if (datatable.Columns.Contains("Mã hàng hóa") &&
                datatable.Columns.Contains("Tên hàng hóa") &&
                datatable.Columns.Contains("Nhóm hàng") &&
                datatable.Columns.Contains("Đơn vị tính") &&
                datatable.Columns.Contains("Loại hàng hóa") &&
                datatable.Columns.Contains("Giá vốn") &&
                datatable.Columns.Contains("Giá bán") &&
                datatable.Columns.Contains("Tồn kho hiện tại") &&
                datatable.Columns.Contains("Barcode"))
            {
                if (intRow != 0)
                {
                    for (int i = 0; i <= intRow - 1; i++)
                    {
                        DataRow dr         = datatable.Rows[i];
                        string  TenHangHoa = dr["Tên hàng hóa"].ToString().Trim();
                        string  DonViTinh  = dr["Đơn vị tính"].ToString().Trim();
                        string  NhomHang   = dr["Nhóm hàng"].ToString().Trim();
                        if (TenHangHoa != "" && DonViTinh != "" && NhomHang != "")
                        {
                            string MaHang = null;
                            if (dr["Mã hàng hóa"].ToString() == "")
                            {
                                string strMaHang = "SP";
                                string MAX       = (DBDataProvider.DB.hhHangHoas.Count() + 1).ToString();
                                for (int j = 1; j < (6 - MAX.Length); j++)
                                {
                                    strMaHang += "0";
                                }
                                MaHang = strMaHang + MAX;
                            }
                            else
                            {
                                MaHang = dr["Mã hàng hóa"].ToString();
                            }
                            double GiaVon      = Convert.ToDouble(dr["Giá vốn"].ToString() == "" ? "0" : dr["Giá vốn"].ToString().Trim());
                            double GiaBan      = Convert.ToDouble(dr["Giá bán"].ToString() == "" ? "0" : dr["Giá bán"].ToString().Trim());
                            int    TonKho      = Convert.ToInt32(dr["Tồn kho hiện tại"].ToString() == "" ? "0" : dr["Tồn kho hiện tại"].ToString().Trim());
                            string LoaiHangHoa = dr["Loại hàng hóa"].ToString() == "" ? "Hàng hóa cơ bản" : dr["Loại hàng hóa"].ToString();
                            string Barcode     = dr["Barcode"].ToString() == "" ? MaHang : dr["Barcode"].ToString();


                            int tblHangHoa_Count = DBDataProvider.DB.hhHangHoas.Where(x => x.MaHang == MaHang && x.DaXoa == 0).Count();
                            int KT_Barcode       = DBDataProvider.DB.hhBarcodes.Where(x => x.Barcode == Barcode && x.DaXoa == false).Count();
                            if (tblHangHoa_Count == 0 && KT_Barcode == 0)
                            {
                                //thêm mới hàng hóa
                                hhHangHoa hanghoa = new hhHangHoa();
                                hanghoa.TenHangHoa  = TenHangHoa;
                                hanghoa.MaHang      = MaHang;
                                hanghoa.TrongLuong  = 0;
                                hanghoa.NgayNhap    = DateTime.Now;
                                hanghoa.LoaiHHID    = KT_LoaiHangHoa(LoaiHangHoa);
                                hanghoa.NhomHHID    = KT_NhomHang(NhomHang);
                                hanghoa.DonViTinhID = KT_DonViTinh(DonViTinh);
                                hanghoa.GiaBan      = GiaBan;
                                hanghoa.GiaVon      = GiaVon;
                                hanghoa.TonKho      = TonKho;
                                hanghoa.DaXoa       = 0;
                                DBDataProvider.DB.hhHangHoas.InsertOnSubmit(hanghoa);
                                DBDataProvider.DB.SubmitChanges();
                                int IDHangHoa = hanghoa.IDHangHoa;
                                if (TonKho > 0)
                                {
                                    // ghi thẻ kho
                                    #region Trường hợp số lượng > 0 thì tiến hành ghi thẻ kho
                                    kTheKho thekho = new kTheKho();
                                    thekho.NgayNhap    = DateTime.Now;
                                    thekho.DienGiai    = "Khai báo hàng hóa";
                                    thekho.Nhap        = TonKho;
                                    thekho.Xuat        = 0;
                                    thekho.Ton         = TonKho;
                                    thekho.GiaThoiDiem = GiaVon;
                                    thekho.NhanVienID  = Formats.IDUser();
                                    thekho.HangHoaID   = IDHangHoa;
                                    DBDataProvider.DB.kTheKhos.InsertOnSubmit(thekho);
                                    #endregion
                                }
                                // insert barcode
                                hhBarcode bc = new hhBarcode();
                                bc.IDHangHoa = IDHangHoa;
                                bc.Barcode   = Barcode;
                                bc.DaXoa     = false;
                                DBDataProvider.DB.hhBarcodes.InsertOnSubmit(bc);
                                DBDataProvider.DB.SubmitChanges();
                            }
                        }
                    }
                }
            }
            else
            {
                throw new Exception("File excel không đúng. Vui lòng kiểm tra lại!!");
            }
        }
Beispiel #3
0
        private void Save()
        {
            using (var scope = new TransactionScope())
            {
                try
                {
                    int KT = DBDataProvider.DB.hhHangHoas.Where(x => x.TenHangHoa == txtTenHH.Text).Count();
                    if (KT == 0)
                    {
                        hhHangHoa hanghoa = new hhHangHoa();
                        hanghoa.TenHangHoa = txtTenHH.Text;
                        string MaHangHoa = null;
                        if (txtMaHH.Text == "")
                        {
                            string strMaHang = "SP";
                            string MAX       = (DBDataProvider.DB.hhHangHoas.Count() + 1).ToString();
                            for (int i = 1; i < (6 - MAX.Length); i++)
                            {
                                strMaHang += "0";
                            }
                            MaHangHoa = strMaHang + MAX;
                        }
                        else
                        {
                            MaHangHoa = txtMaHH.Text;
                        }
                        hanghoa.MaHang      = MaHangHoa;
                        hanghoa.NhomHHID    = Convert.ToInt32(ccbNhomHH.Value);
                        hanghoa.DonViTinhID = Convert.ToInt32(ccbDVT.Value);
                        hanghoa.TrongLuong  = 0;
                        hanghoa.GiaBan      = Convert.ToDouble(spGiaBan.Number);
                        hanghoa.GiaVon      = Convert.ToDouble(spGiaVon.Number);
                        hanghoa.DaXoa       = 0;
                        hanghoa.NgayNhap    = DateTime.Now;
                        hanghoa.LoaiHHID    = Convert.ToInt32(ccbLoaiHangHoa.Value.ToString());
                        int SL = Convert.ToInt32(spSoLuong.Number);

                        hanghoa.TonKho = SL;
                        DBDataProvider.DB.hhHangHoas.InsertOnSubmit(hanghoa);
                        DBDataProvider.DB.SubmitChanges();
                        int IDHangHoa = hanghoa.IDHangHoa;

                        if (SL > 0)
                        {
                            #region Trường hợp số lượng > 0 thì tiến hành ghi thẻ kho
                            kTheKho thekho = new kTheKho();
                            thekho.NgayNhap    = DateTime.Now;
                            thekho.DienGiai    = "Khai báo hàng hóa";
                            thekho.Nhap        = SL;
                            thekho.Xuat        = 0;
                            thekho.Ton         = SL;
                            thekho.GiaThoiDiem = Convert.ToDouble(spGiaVon.Number);
                            thekho.NhanVienID  = Formats.IDUser();
                            thekho.HangHoaID   = IDHangHoa;
                            DBDataProvider.DB.kTheKhos.InsertOnSubmit(thekho);
                            #endregion
                        }

                        List <string> ListBarCode = GetListBarCode();
                        if (ListBarCode.Count > 0)
                        {
                            foreach (string barCode in ListBarCode)
                            {
                                int KT_barcode = DBDataProvider.DB.hhBarcodes.Where(x => x.Barcode == barCode).Count();
                                if (KT_barcode == 0)
                                {
                                    hhBarcode bc = new hhBarcode();
                                    bc.IDHangHoa = IDHangHoa;
                                    bc.Barcode   = barCode;
                                    bc.DaXoa     = false;
                                    DBDataProvider.DB.hhBarcodes.InsertOnSubmit(bc);
                                }
                                else
                                {
                                    throw new Exception("Barcode tồn tại đã bỏ qua!!");
                                }
                            }
                        }
                        else
                        {
                            hhBarcode bc = new hhBarcode();
                            bc.IDHangHoa = IDHangHoa;
                            bc.Barcode   = MaHangHoa;
                            bc.DaXoa     = false;
                            DBDataProvider.DB.hhBarcodes.InsertOnSubmit(bc);
                        }
                        DBDataProvider.DB.SubmitChanges();
                        scope.Complete();
                        cbpThemHH.JSProperties["cp_Reset"] = true;
                    }
                    else
                    {
                        throw new Exception("Tên hàng hóa đã tồn tại !!");
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }