private void button1_Click(object sender, EventArgs e) { List <CCongNoNew> _datasource = new List <CCongNoNew>(); string note = ""; BindingSource bs = new BindingSource(); long MAKH = long.Parse(comboBox1.SelectedValue.ToString()); DateTime FROM = dateTimePickerFROM.Value.Date; DateTime TO = dateTimePickerTO.Value.Date; var xuat_hang = db.XUAT_HANG.Where(u => u.MAKH == MAKH && u.NGAY_XUAT >= FROM && u.NGAY_XUAT <= TO); var thu_no = db.THU_NO.Where(u => u.MAKH == MAKH && u.NGAY_TRA >= FROM && u.NGAY_TRA <= TO); foreach (XUAT_HANG xh in xuat_hang) { HANG_HOA _hh = MHangHoa.GetByID(xh.MAHH); string unit = _hh == null ? "" : _hh.UNIT; long dongia = _hh == null ? 0 : xh.DON_GIA_BAN; long soluong = _hh == null ? 0 : xh.SO_LUONG; _datasource.Add(new CCongNoNew { NGAY = xh.NGAY_XUAT.Value, TRANO = soluong < 0 ? "Nhập bù" : "", TRATRUOC = xh.TRA_TRUOC, HANGHOA = MHangHoa.GetNameByID(xh.MAHH), SOLUONG = soluong, DONVITINH = unit, DONGIA = dongia, THANHTIEN = xh.THANH_TIEN, TRAGOC = 0, TRALAI = 0, CONNO = 0 }); } foreach (THU_NO xh in thu_no) { _datasource.Add(new CCongNoNew { NGAY = xh.NGAY_TRA, TRATRUOC = 0, TRANO = "Trả nợ", HANGHOA = "", SOLUONG = 0, DONVITINH = "", DONGIA = 0, THANHTIEN = 0, TRAGOC = xh.TIEN_GOC, TRALAI = xh.TIEN_LAI, CONNO = 0 }); } var datasource = _datasource.OrderBy(u => u.NGAY); long no = checkBoxNODAUKI.Checked == true?MXuatHang.TongNoDauKi(MAKH, FROM) - MThuNo.TongGocDauKi(MAKH, FROM) : 0; long nodauki = no; foreach (CCongNoNew c in datasource) { c.CONNO = no + c.THANHTIEN - c.TRATRUOC - c.TRAGOC; no = c.CONNO; } bs.DataSource = datasource; CrystalReportCONGNOKHACHHANG rpt = new CrystalReportCONGNOKHACHHANG(); rpt.SetDataSource(bs); rpt.SetParameterValue("KH", comboBox1.Text); rpt.SetParameterValue("FROM", dateTimePickerFROM.Value); rpt.SetParameterValue("TO", dateTimePickerTO.Value); rpt.SetParameterValue("COMP", ConstClass.COMPANY_NAME); rpt.SetParameterValue("NODAUKI", nodauki); crystalReportViewer1.ReportSource = rpt; crystalReportViewer1.Zoom(150); }
private void button1_Click(object sender, EventArgs e) { List <CTongHopCongNo> _datasource = new List <CTongHopCongNo>(); var include_THUNO = checkBoxTHUNO.Checked; string note = ""; var kho = long.Parse(comboBoxKHO.SelectedValue.ToString()); var _from = dateTimePicker1.Value.Date; var _to = dateTimePicker2.Value.Date; BindingSource bs = new BindingSource(); /* Tính tổng tiền, trả trước group theo MAKH */ var _xh = (from xh in DataInstance.Instance().DBContext().XUAT_HANG join kh in DataInstance.Instance().DBContext().KHACH_HANG on xh.MAKH equals kh.ID where xh.MAKHO == kho where xh.NGAY_XUAT >= _from && xh.NGAY_XUAT <= _to group xh by new { xh.MAKH, kh.NAME } into g select new CTongHopCongNo() { STT = g.Key.MAKH, MAKH = g.Key.MAKH, KHACHHANG = g.Key.NAME, TRATRUOC = g.Sum(u => u.TRA_TRUOC), THANHTIEN = g.Sum(u => u.THANH_TIEN), DATRA = 0, CONNO = g.Sum(u => u.THANH_TIEN - u.TRA_TRUOC) } ); int STT = 1; if (include_THUNO == false) { note = "KHÔNG TÍNH TIỀN LÃI"; /* Có sử dụng dữ liệu thu nợ */ /* Tính tổng lãi cho từng KH */ foreach (CTongHopCongNo row in _xh) { //double lai = 0; double datra = 0; /* Tính lãi cho tất cả những lần xuất hàng cho KH */ foreach (XUAT_HANG _row in (from _xh_ in DataInstance.Instance().DBContext().XUAT_HANG where _xh_.MAKHO == kho where _xh_.MAKH == row.MAKH select _xh_)) { /* Không sử dụng dữ liệu từ thu nợ */ //lai += MXuatHang.GetLaiPhatSinh((int)_row.ID, _to); datra += MChiTietThuNo.TraGocHH((int)_row.ID); } _datasource.Add(new CTongHopCongNo() { STT = STT++, KHACHHANG = row.KHACHHANG, TRATRUOC = row.TRATRUOC, THANHTIEN = row.THANHTIEN, DATRA = (long)datra, CONNO = row.THANHTIEN - (long)datra - row.TRATRUOC }); } } else { note = "BAO GỒM TIỀN LÃI"; /* Không sử dụng dữ liệu thu nợ*/ /* Tính tổng lãi cho từng KH */ foreach (CTongHopCongNo row in _xh) { double lai = 0; double datra = 0; foreach (XUAT_HANG _row in (from _xh_ in DataInstance.Instance().DBContext().XUAT_HANG where _xh_.MAKHO == kho where _xh_.MAKH == row.MAKH select _xh_)) { lai += MXuatHang.GetLai((int)_row.ID, _to); datra += MChiTietThuNo.DaTraHH((int)_row.ID); } _datasource.Add(new CTongHopCongNo() { STT = STT++, KHACHHANG = row.KHACHHANG, TRATRUOC = row.TRATRUOC, THANHTIEN = row.THANHTIEN + (long)lai, DATRA = (long)datra, CONNO = row.THANHTIEN - (long)datra - row.TRATRUOC + (long)lai }); } } bs.DataSource = _datasource; CrystalReportTONGHOPCONGNO rpt = new CrystalReportTONGHOPCONGNO(); rpt.SetDataSource(bs); rpt.SetParameterValue("KHO", comboBoxKHO.Text); rpt.SetParameterValue("FROM", _from); rpt.SetParameterValue("TO", _to); rpt.SetParameterValue("COMP", ConstClass.COMPANY_NAME); rpt.SetParameterValue("NOTE", note); crystalReportViewer1.ReportSource = rpt; crystalReportViewer1.Zoom(150); }
private void buttonADD_Click(object sender, EventArgs e) { try { var ele = new XUAT_HANG(); ele.MAKHO = Convert.ToInt32(comboBoxKho.SelectedValue.ToString()); if (checkBoxBANMAT.Checked == true) { ele.MAKH = MXuatHang.MAKH_XUAT_MAT; ele.TRA_TRUOC = 0; ele.LAI_SUAT = 0; } else { ele.MAKH = Convert.ToInt32(comboBoxKHACH_HANG.SelectedValue.ToString()); ele.TRA_TRUOC = Convert.ToInt32(textBoxDUATRUOC.Text); ele.LAI_SUAT = Convert.ToDouble(textBoxLAISUAT.Text) / 100; } ele.NGAY_XUAT = dateTimePickerNGAYBAN.Value.Date; ele.CREATED_AT = DateTime.Now; ele.SO_LUONG = Convert.ToInt32(textBoxSOLUONG.Text); ele.DON_GIA_BAN = Convert.ToInt32(textBoxDONGIA.Text); ele.MAHH = Convert.ToInt32(comboBoxHANGHOA.SelectedValue.ToString()); ele.TRANG_THAI = MXuatHang.CHUA_TRA_XONG; ele.THANH_TIEN = ele.SO_LUONG * ele.DON_GIA_BAN; if (ele.DON_GIA_BAN < 0 || ele.TRA_TRUOC < 0 || ele.LAI_SUAT < 0) { MessageBox.Show("Đơn giá, trả trước, lãi suất không được nhỏ hơn 0"); return; } if (ele.DON_GIA_BAN == 0 && ele.SO_LUONG == 0) { if (ele.TRA_TRUOC == 0) { MessageBox.Show("Dữ liệu nhập vào không hợp lệ"); textBoxDUATRUOC.Select(); textBoxDUATRUOC.SelectAll(); return; } } if (ele.DON_GIA_BAN < ConstClass.DON_GIA_BASE && ele.SO_LUONG > 0) { MessageBox.Show("Đơn giá không hợp lệ"); textBoxDONGIA.Select(); textBoxDONGIA.SelectAll(); return; } long lton = MKho.Ton(ele.MAKHO, ele.MAHH); if (ele.SO_LUONG > lton) { MessageBox.Show("Số lượng bán hàng lớn hơn số lượng tồn.\nCòn tồn: " + lton.ToString(), "Lỗi số lượng!", MessageBoxButtons.OK, MessageBoxIcon.Error); comboBoxHANGHOA.Select(); return; } bs.Add(ele); bs.EndEdit(); bs.ResetBindings(false); /* TRỪ SỐ LƯỢNG HÀNG ĐÃ XUẤT VÀO NHẬP HÀNG */ MXuatHang.Update(ele.SO_LUONG, ele); dbContext.SaveChanges(); textBoxDONGIA.SelectAll(); textBoxLAISUAT.Text = "0"; textBoxDUATRUOC.Text = "0"; textBoxDONGIA.Text = "0"; textBoxSOLUONG.Text = "0"; long kho = long.Parse(comboBoxKho.SelectedValue.ToString()); long hh = long.Parse(comboBoxHANGHOA.SelectedValue.ToString()); long ton = MKho.Ton(kho, hh); labelTON.Text = "TỒN: " + ton.ToString(); } catch (Exception ex) { //MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show("Dữ liệu nhập vào phải là số"); } comboBoxHANGHOA.Select(); }
private void button1_Click(object sender, EventArgs e) { List <CCongNoKhachHang> _datasource = new List <CCongNoKhachHang>(); string note = ""; BindingSource bs = new BindingSource(); long MAKH = long.Parse(comboBox1.SelectedValue.ToString()); DateTime FROM = dateTimePickerFROM.Value.Date; DateTime TO = dateTimePickerTO.Value.Date; /* Lấy tất cả dữ liệu xuất hàng cho khách hàng này */ /* Từ ngày đến ngày */ IQueryable <CCongNoKhachHang> xuat_hang = (from _xh in DataInstance.Instance().DBContext().XUAT_HANG join _kho in DataInstance.Instance().DBContext().KHOes on _xh.MAKHO equals _kho.ID //join _hh in DataInstance.Instance().DBContext().HANG_HOA on _xh.MAHH equals _hh.ID where _xh.MAKH == MAKH where _xh.NGAY_XUAT >= FROM && _xh.NGAY_XUAT <= TO orderby _xh.NGAY_XUAT ascending select new CCongNoKhachHang { ID = (int)_xh.ID, NGAY = _xh.NGAY_XUAT.Value, KHO = _kho.NAME, HANGHOAID = _xh.MAHH, //HANGHOA = _hh.NAME, SOLUONG = _xh.SO_LUONG, DONGIABAN = _xh.DON_GIA_BAN, THANHTIEN = _xh.THANH_TIEN, TRATRUOC = _xh.TRA_TRUOC, LAISUAT = _xh.LAI_SUAT, LAI = 0, TRAGOC = 0, TRALAI = 0, CONNO = 0 }); note = "CHI TIẾT LÃI KHÁCH HÀNG"; DateTime now = dateTimePickerTO.Value.Date; /* Không sử dụng dữ liệu từ thu nợ */ foreach (CCongNoKhachHang row in xuat_hang) { //double lai = Utility.Lai(row.NGAY, now, row.LAISUAT, row.THANHTIEN - row.TRATRUOC); double lai = MXuatHang.GetLai(row.ID, now); string HangHoa = MHangHoa.GetNameByID(row.HANGHOAID); _datasource.Add(new CCongNoKhachHang() { NGAY = row.NGAY, KHO = row.KHO, HANGHOA = HangHoa, SOLUONG = row.SOLUONG, DONGIABAN = row.DONGIABAN, THANHTIEN = row.THANHTIEN, TRATRUOC = row.TRATRUOC, LAISUAT = row.LAISUAT * 100, /* Cần tính lãi */ LAI = lai, TRAGOC = 0, TRALAI = 0, CONNO = row.THANHTIEN + (long)lai - row.TRATRUOC }); } //} bs.DataSource = _datasource; CrystalReportCHITIETLAIKHACHHANG rpt = new CrystalReportCHITIETLAIKHACHHANG(); rpt.SetDataSource(bs); rpt.SetParameterValue("KH", comboBox1.Text); rpt.SetParameterValue("FROM", dateTimePickerFROM.Value); rpt.SetParameterValue("TO", dateTimePickerTO.Value); rpt.SetParameterValue("COMP", ConstClass.COMPANY_NAME); rpt.SetParameterValue("NOTE", note); crystalReportViewer1.ReportSource = rpt; crystalReportViewer1.Zoom(150); }