示例#1
0
        private void cbMatHangXuat_SelectedValueChanged(object sender, EventArgs e)
        {
            ComboBox cb = sender as ComboBox;

            if (cb.SelectedValue != null)
            {
                MatHang mh = cb.SelectedValue as MatHang;
                cbMatHangXuat.Tag = mh;
            }
        }
示例#2
0
        private void cbGiaXuat_Click(object sender, EventArgs e)
        {
            conn.Open();
            string     tenHang = cbMatHangXuat.Text;
            List <int> ls      = new List <int>();

            if (tenHang != "")//kiểm tra xem đã nhập mặt hàng hay chưa
            {
                try
                {
                    MatHang mh = cbMatHangXuat.Tag as MatHang;// lấy thông tin mặt hàng đã được nhập từ cbMatHangNhap.Tag
                    //lấy giá xuất của mặt hàng hiện đang có trong kho
                    //cùng một mặt hàng nhưng giá nhập tại các thời điểm( các lô hàng nhập kho) khác nhau sẽ có giá xuất khác nhau
                    //việc chọn này sẽ giúp ta biết chính xác mình muốn xuất đi mặt hàng thuộc lô hàng nào
                    string     idMatHang = mh.id;
                    string     sql       = @"select giaXuat from ChiTietPhieuNhap where idMatHang = N'" + idMatHang + @"' and trangThai > 0";
                    SqlCommand cmd       = new SqlCommand();
                    cmd.CommandText = sql;
                    cmd.Connection  = conn;
                    DbDataReader reader = cmd.ExecuteReader();
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            int index = reader.GetOrdinal("giaXuat");
                            int gia   = Convert.ToInt32(reader.GetValue(index));
                            ls.Add(gia);
                        }
                    }
                    else
                    {
                        MessageBox.Show(@"Trong kho hiện đang hết " + mh.ten + @"!");
                    }
                }
                catch
                {
                }
                finally
                {
                    conn.Close();
                }
                cbGiaXuat.DataSource = ls;
            }
            else
            {
                MessageBox.Show(@"Hãy nhập tên hàng trước!");
                conn.Close();
            }
        }
示例#3
0
        private void cbMatHangXuat_Click(object sender, EventArgs e)
        {
            conn.Open();
            List <MatHang> ls = new List <MatHang>();

            try
            {
                SqlCommand cmd = new SqlCommand();
                string     sql = @"select MatHang.id,MatHang.ten,MatHang.idDonVi,DonVi.ten as tenDV from MatHang,DonVi where MatHang.idDonVi=DonVi.id";
                cmd.CommandText = sql;
                cmd.Connection  = conn;
                DbDataReader reader = cmd.ExecuteReader();
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        MatHang mh      = new MatHang();
                        int     idIndex = reader.GetOrdinal("id");
                        mh.id = Convert.ToString(reader.GetValue(idIndex));
                        int tenIndex = reader.GetOrdinal("ten");
                        mh.ten = Convert.ToString(reader.GetValue(tenIndex));
                        int idDonViIndex = reader.GetOrdinal("idDonVi");
                        mh.idDonVi = Convert.ToInt32(reader.GetValue(idDonViIndex));
                        int tenDVIndex = reader.GetOrdinal("tenDV");
                        mh.tenDonVi = Convert.ToString(reader.GetValue(tenDVIndex));
                        ls.Add(mh);
                    }
                }
            }
            catch
            {
                MessageBox.Show(@"Load danh sách mặt hàng thất bại!");
            }
            finally
            {
                conn.Close();
            }
            cbMatHangXuat.DataSource    = ls;
            cbMatHangXuat.DisplayMember = "ten";
        }
示例#4
0
        private void btnAddXuat_Click(object sender, EventArgs e)
        {
            //Lấy dữ liệu đầu vào
            MatHang mh          = cbMatHangXuat.Tag as MatHang;
            int     giaXuatHang = Convert.ToInt32(cbGiaXuat.Text);
            int     soLuongXuat = Convert.ToInt32(nudSoLuongXuat.Value);

            if (cbMatHangXuat.Text != "" && cbGiaXuat.Text != "")//Kiểm tra thông tin đã nhập hay chưa
            {
                //Lấy danh sách tồn kho của mặt hàng với giá vừa được nhập vào
                TonKho tk = new TonKho();
                conn.Open();
                string     sql = @"select idMatHang,giaXuat,sum(trangThai) as tonKho from ChiTietPhieuNhap where idMatHang =N'" + mh.id + @"' and giaXuat =N'" + giaXuatHang.ToString() + @"' group by idMatHang,giaXuat";
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = sql;
                cmd.Connection  = conn;
                DbDataReader reader = cmd.ExecuteReader();
                try
                {
                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            int idIndex = reader.GetOrdinal("idMatHang");
                            tk.id = Convert.ToString(reader.GetValue(idIndex));
                            int giaIndex = reader.GetOrdinal("giaXuat");
                            tk.gia = Convert.ToInt32(reader.GetValue(giaIndex));
                            int tonKhoIndex = reader.GetOrdinal("tonKho");
                            tk.soLuongTon = Convert.ToInt32(reader.GetValue(tonKhoIndex));
                        }
                    }
                }
                catch
                {
                    MessageBox.Show(@"Lỗi khi kiểm tra tồn kho " + mh.ten);
                }
                finally
                {
                    reader.Close();
                    reader.Dispose();
                }
                //Thêm mat hang vao hoa don
                ChiTietPhieuXuat item = new ChiTietPhieuXuat();
                item.maHang    = mh.id;
                item.tenHang   = mh.ten;
                item.donVi     = mh.tenDonVi;
                item.giaXuat   = giaXuatHang;
                item.soLuong   = soLuongXuat;
                item.thanhTien = giaXuatHang * soLuongXuat;
                //Nếu hóa đơn chưa có mặt hàng nào
                if (lsChiTietPhieuXuat.Count == 0)
                {
                    if (soLuongXuat <= tk.soLuongTon && soLuongXuat > 0)
                    {
                        lsChiTietPhieuXuat.Add(item);
                    }
                    else
                    {
                        MessageBox.Show(@"số lượng tồn kho không đủ hoặc bạn nhập vào số âm khi chưa có mặt hàng này trong phiếu! Hiện tại " + item.tenHang + @" với giá " + item.giaXuat.ToString() + @"chỉ còn " + tk.soLuongTon.ToString() + @" (" + item.donVi + @")");
                    }
                }
                else  //trường hợp hóa đơn đã có nội dung
                {
                    bool daCoMatHang = false;
                    //kiểm tra mặt hàng đã có trong hóa đơn hay chưa
                    foreach (ChiTietPhieuXuat tg in lsChiTietPhieuXuat)
                    {
                        if (item.maHang == tg.maHang)//nếu đã có
                        {
                            daCoMatHang = true;
                            int sl = item.soLuong + tg.soLuong;
                            if (sl <= 0)//nếu tổng số thêm vào nhỏ hơn hoặc bằng 0 thì xóa mặt hàng khỏi hóa đơn
                            {
                                lsChiTietPhieuXuat.Remove(tg);
                            }
                            else if (sl <= tk.soLuongTon)// nếu tổng số lượng thêm vào >0 và <= số lượng tồn kho
                            {
                                lsChiTietPhieuXuat.Add(item);
                            }
                            else
                            {
                                MessageBox.Show(@"tồn kho không đủ!");
                            }
                        }
                    }
                    if (daCoMatHang == false)
                    {
                        if (soLuongXuat <= tk.soLuongTon && soLuongXuat > 0)
                        {
                            lsChiTietPhieuXuat.Add(item);
                        }
                        else
                        {
                            MessageBox.Show(@"Tồn kho không đủ hoặc số lượng mặt hàng thêm vào đang âm!");
                        }
                    }
                }
                //Hiển thị nội dung hóa đơn cho người dùng
                int chay = 0;
                lsvPhieuXuat.Items.Clear();
                foreach (ChiTietPhieuXuat i in lsChiTietPhieuXuat)
                {
                    chay++;
                    ListViewItem itemTG = new ListViewItem(chay.ToString());
                    itemTG.SubItems.Add(i.maHang);
                    itemTG.SubItems.Add(i.tenHang);
                    itemTG.SubItems.Add(i.soLuong.ToString());
                    itemTG.SubItems.Add(i.donVi);
                    itemTG.SubItems.Add(i.giaXuat.ToString());
                    itemTG.SubItems.Add(i.thanhTien.ToString());
                    lsvPhieuXuat.Items.Add(itemTG);
                }
                conn.Close();
                //sau khi thêm xong tiến hành làm trống lại các mục
                cbMatHangXuat.Text   = "";
                cbGiaXuat.Text       = "";
                nudSoLuongXuat.Value = 0;
            }
            else
            {
                MessageBox.Show(@"Hãy nhập tên mặt hàng và chọn giá hàng!");
            }
        }
示例#5
0
 private void btnAddNhap_Click(object sender, EventArgs e)
 {
     try
     {
         MatHang mh      = cbMatHangNhap.Tag as MatHang;
         int     soLuong = Convert.ToInt32(nudSoLuongNhap.Value);
         int     giaNhap = Convert.ToInt32(tbGiaNhap.Text);
         int     giaXuat = Convert.ToInt32(tbGiaXuat.Text);
         //Thêm bản ghi mặt hàng vào dah sách ci tiết hóa đơn
         ChiTietHoaDon item = new ChiTietHoaDon();
         item.maHang    = mh.id;
         item.tenHang   = mh.ten;
         item.donVi     = mh.tenDonVi;
         item.giaNhap   = giaNhap;
         item.giaXuat   = giaXuat;
         item.soLuong   = soLuong;
         item.thanhTien = giaNhap * soLuong;
         if (lsChiTietHoaDon.Count == 0)
         {
             lsChiTietHoaDon.Add(item);
         }
         else
         {
             foreach (ChiTietHoaDon tg in lsChiTietHoaDon)
             {
                 if (item.tenHang == tg.tenHang)
                 {
                     int sluong = item.soLuong + tg.soLuong;
                     if (sluong <= 0)
                     {
                         //xóa mặt hàng khỏi hóa đơn
                         lsChiTietHoaDon.Remove(tg);
                     }
                     else
                     {
                         tg.soLuong = sluong;
                     }
                 }
             }
         }
         lsvPhieuNhap.Items.Clear();
         int chay = 0;
         int sum  = 0;
         foreach (ChiTietHoaDon tg in lsChiTietHoaDon)
         {
             chay++;
             ListViewItem itemTG = new ListViewItem(chay.ToString());
             itemTG.SubItems.Add(tg.maHang);
             itemTG.SubItems.Add(tg.tenHang);
             itemTG.SubItems.Add(tg.giaNhap.ToString());
             itemTG.SubItems.Add(tg.giaXuat.ToString());
             itemTG.SubItems.Add(tg.soLuong.ToString());
             itemTG.SubItems.Add(tg.donVi);
             itemTG.SubItems.Add(tg.thanhTien.ToString());
             lsvPhieuNhap.Items.Add(itemTG);
             sum = sum + tg.thanhTien;
         }
         tbTongNhap.Text = sum.ToString();
     }
     catch
     {
         MessageBox.Show(@"Không convert được dữ liệu nhập vào hoặc bạn còn đang để trống thông tin!");
     }
 }