Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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();
        }
Пример #4
0
        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);
        }