コード例 #1
0
ファイル: KTraDH.cs プロジェクト: nccong207/ACHAU
        public void ExecuteBefore()
        {
            tableName = _data.DrTableMaster["TableName"].ToString();
            if (!lstTB.Contains(tableName))
            {
                return;
            }

            drCur = _data.DsData.Tables[0].Rows[_data.CurMasterIndex];
            DataTable dtM = _data.DsData.Tables[0];

            if (drCur.RowState == DataRowState.Deleted)
            {
                return;
            }

            if (tableName == "MTDonHang")
            {
                if (drCur.RowState == DataRowState.Modified &&
                    Boolean.Parse(drCur["Duyet", DataRowVersion.Current].ToString()) == false &&
                    Boolean.Parse(drCur["Duyet", DataRowVersion.Original].ToString()) == true)      //trường hợp bỏ duyệt -> không cảnh báo
                {
                    return;
                }
                _info.Result = KTNhapSoLieu(drCur);
                if (_info.Result == false)
                {
                    return;
                }
            }
            if (tableName == "MTDonHang")
            {
                //Truong hop them moi
                //if (drCur.RowState == DataRowState.Added)
                //{
                //    DataRow drDetail = _data.DsData.Tables[1].Rows[0];
                //    foreach (DataColumn i in _data.DsData.Tables[1].Columns)
                //    {
                //        drCur[i.ColumnName] = drDetail[i.ColumnName];
                //    }
                //}
                //thong bao ve don hang chua san xuat
                string    makh   = drCur["MaKH"].ToString();
                string    s      = @"select mt.SoDH, mt.NgayCT, dt.* 
                        from MTDonHang mt inner join DTDonHang dt on mt.MTDHID = dt.MTDHID
                        where mt.LSX is null and mt.MaKH = '" + makh + "' and mt.MTDHID <> '" + drCur["MTDHID"].ToString() + "'";
                DataTable dtDSDH = db.GetDataTable(s);
                if (dtDSDH.Rows.Count > 0)
                {
                    if (XtraMessageBox.Show(string.Format("Khách hàng này có {0} đơn hàng chưa sản xuất\n" +
                                                          "Bạn có muốn xem không?", dtDSDH.Rows.Count), Config.GetValue("PackageName").ToString(), MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        FrmDSDH frm = new FrmDSDH(dtDSDH);
                        frm.ShowDialog();
                    }
                }
                //thong bao ve 4 thong so don hang
                string  msg = "Giá trị đơn hàng: {0}\nCông nợ hiện tại: {1}\nHạn mức công nợ: {2}\nTrị giá tồn kho: {3}";
                object  m0  = _data.DsData.Tables[1].Compute("sum(ThanhTien)", "MTDHID = '" + drCur["MTDHID"].ToString() + "'");
                decimal d0  = m0 == DBNull.Value ? 0 : decimal.Parse(m0.ToString());
                //cong no khach hang
                s = @"select sum(PhatSinh + Thue - ThanhToan - HangTra) from wCNPThu where MaKH = '" + makh + "'";
                object  m1 = db.GetValue(s);
                decimal d1 = m1 == DBNull.Value ? 0 : decimal.Parse(m1.ToString());
                //han muc cong no
                object  m2 = db.GetValue("select HMNo from DMKH where MaKH = '" + makh + "'");
                decimal d2 = m2 == DBNull.Value ? 0 : decimal.Parse(m2.ToString());
                //tri gia ton kho
                s = @"select sum(PsNo - PsCo) from BLVT where MaKH = '" + makh + "'";
                object  m3 = db.GetValue(s);
                decimal d3 = m3 == DBNull.Value ? 0 : decimal.Parse(m3.ToString());
                XtraMessageBox.Show(string.Format(msg, d0.ToString("###,###,###,##0"), d1.ToString("###,###,###,##0"),
                                                  d2.ToString("###,###,###,##0"), d3.ToString("###,###,###,##0")),
                                    Config.GetValue("PackageName").ToString());
            }
            //if (tableName == "MTDonHang")
            //    CapNhatNL(drCur);
            if (!_info.Result)      //khong chon duoc nguyen lieu voi kho giay phu hop
            {
                return;
            }
            //thong bao ve danh sach nguyen lieu su dung va ton kho
            if (XtraMessageBox.Show("Bạn có muốn xem nguyên liệu sử dụng không?",
                                    Config.GetValue("PackageName").ToString(), MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                //LẤY SỐ TỒN TRONG VIEW wDMNL2
                dtDMNL = db.GetDataTable("Select * from wDMNL2");
                DataTable dtDSNL = LayDSNL(drCur);
                FrmDSNL   frmNL  = new FrmDSNL(dtDSNL);
                frmNL.ShowDialog();
            }
            string dienGiai = tableName == "MTDonHang" ? "đơn hàng" : "lệnh sản xuất";

            _info.Result = (XtraMessageBox.Show("Bạn có muốn lưu " + dienGiai + " này không?",
                                                Config.GetValue("PackageName").ToString(), MessageBoxButtons.YesNo) == DialogResult.Yes);
        }
コード例 #2
0
        public void ExecuteBefore()
        {
            tableName = _data.DrTableMaster["TableName"].ToString();
            if (!lstTB.Contains(tableName))
            {
                return;
            }
            drCur = _data.DsData.Tables[0].Rows[_data.CurMasterIndex];
            if (drCur.RowState == DataRowState.Deleted)
            {
                return;
            }

            if (tableName == "MTDonHang")
            {
                string    pk      = lstPk[lstTB.IndexOf(tableName)];
                string    pkValue = drCur[pk].ToString();
                DataTable dt      = _data.DsData.Tables[1];
                DataRow[] drs     = dt.Select(pk + " = '" + pkValue + "'");
                foreach (DataRow dr in drs)
                {
                    if (Convert.ToBoolean(dr["isXa"]) & Convert.ToBoolean(dr["isCL"]))
                    {
                        XtraMessageBox.Show("Mặt hàng " + dr["TenHang"].ToString() + " không thể đánh dấu cả 'Xả' và 'Cán lằn'!",
                                            Config.GetValue("PackageName").ToString());
                        _info.Result = false;
                        return;
                    }
                    if (Convert.ToBoolean(dr["isXa"]))
                    {
                        if (dr["XaX"].ToString() == "" || dr["DaoX"].ToString() == "")
                        {
                            XtraMessageBox.Show("Mặt hàng " + dr["TenHang"].ToString() + " đánh dấu 'Xả' cần nhập Dao và Xả!",
                                                Config.GetValue("PackageName").ToString());
                            _info.Result = false;
                            return;
                        }
                    }
                    if (Convert.ToBoolean(dr["isCL"]))
                    {
                        if (dr["DaiCL"].ToString() == "" ||
                            dr["RongCL"].ToString() == "" ||
                            dr["CaoCL"].ToString() == "" ||
                            dr["LopCL"].ToString() == "" ||
                            dr["Lan"].ToString() == "")
                        {
                            XtraMessageBox.Show("Mặt hàng " + dr["TenHang"].ToString() + " đánh dấu 'Cán lằn' cần nhập quy cách thùng và loại lằn!",
                                                Config.GetValue("PackageName").ToString());
                            _info.Result = false;
                            return;
                        }
                    }
                    if (dr["Loai"].ToString() == "Thùng" && dr["Lan"].ToString() == "")
                    {
                        XtraMessageBox.Show("Mặt hàng thùng " + dr["TenHang"].ToString() + " cần nhập loại lằn!",
                                            Config.GetValue("PackageName").ToString());
                        _info.Result = false;
                        return;
                    }
                }
                //thong bao ve don hang chua san xuat
                string makh = drCur["MaKH"].ToString();
                //ngày 22/4/2015: thêm điều kiện ngày chứng từ > năm 2014 để loại những đơn hàng cũ mà người dùng chưa nhập đúng số liệu mt.LSX
                string    s      = @"select mt.SoDH, mt.NgayCT, dt.* 
                        from MTDonHang mt inner join DTDonHang dt on mt.MTDHID = dt.MTDHID
                        where mt.NgayCT >= '1/1/2015' and (mt.LSX is null or dt.TinhTrang is null) and mt.MaKH = '" + makh + "' and mt.MTDHID <> '" + drCur["MTDHID"].ToString() + "'";
                DataTable dtDSDH = db.GetDataTable(s);

                if (dtDSDH.Rows.Count > 0)
                {
                    int isShowDH = Config.GetValue("xemDonHang") != null?Convert.ToInt32(Config.GetValue("xemDonHang").ToString()) : 0;

                    if (isShowDH == 1)
                    {
                        if (XtraMessageBox.Show(string.Format("Khách hàng này có {0} đơn hàng chưa sản xuất\n" +
                                                              "Bạn có muốn xem không?", dtDSDH.Rows.Count), Config.GetValue("PackageName").ToString(), MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            FrmDSDH frm = new FrmDSDH(dtDSDH);
                            frm.ShowDialog();
                        }
                    }
                }


                //thong bao ve 4 thong so don hang
                string  msg = "Giá trị đơn hàng: {0}\nGiá trị đơn hàng chưa sản xuất: {4}\nCông nợ hiện tại: {1}\nHạn mức công nợ: {2}\nTrị giá tồn kho: {3}";
                object  m0  = _data.DsData.Tables[1].Compute("sum(ThanhTien)", "MTDHID = '" + drCur["MTDHID"].ToString() + "'");
                decimal d0  = m0 == DBNull.Value ? 0 : decimal.Parse(m0.ToString());
                //cong no khach hang
                s = string.Format(@"    select		w.dt23id,w.mt23id,w.tenhang,w.dvt,w.soluong,w.dongia,w.thue,
		                                            w.mahh,w.soct,w.ngayct,w.makh,w.mact,w.sohd,w.dtdhid,w.dieuchinh,m.ttienhang
		                                            ,sum(w.phatsinh) [phatsinh],sum(w.thanhtoan) [thanhtoan],sum(w.hangtra) [hangtra]
                                        into		#tempPThu
                                        from		wcnpthu w left join mt33 m on w.soct = m.soct
                                        where		w.makh = '{0}'
                                        group by	w.dt23id,w.mt23id,w.tenhang,w.dvt,w.soluong,w.dongia,w.thue,
		                                            w.mahh,w.soct,w.ngayct,w.makh,w.mact,w.sohd,w.dtdhid,w.dieuchinh,m.ttienhang

                                        select sum(PhatSinh + Thue - ThanhToan - HangTra) from #tempPThu where MaKH = '{0}'
                                        drop table  #tempPThu", makh);
                object  m1 = db.GetValue(s);
                decimal d1 = m1 == DBNull.Value ? 0 : decimal.Parse(m1.ToString());

                //Giá trị đơn hàng chưa sản xuất:
                // s = @"select sum (dt.ThanhTien)
                //       from MTDonHang mt inner join DTDonHang dt on mt.MTDHID = dt.MTDHID
                //       where mt.LSX is null and mt.MaKH = '" + makh + "' and mt.MTDHID = '" + drCur["MTDHID"].ToString() + "'";

                s = @"select sum (dt.ThanhTien)
                        from MTDonHang mt inner join DTDonHang dt on mt.MTDHID = dt.MTDHID
                        where mt.NgayCT >= '1/1/2015' and (mt.LSX is null or dt.TinhTrang is null) and mt.MaKH = '" + makh + "' and mt.MTDHID <> '" + drCur["MTDHID"].ToString() + "'";

                object  m4 = db.GetValue(s);
                decimal d4 = m4 == DBNull.Value ? 0 : decimal.Parse(m4.ToString());

                //han muc cong no
                s = string.Format(@"--chuẩn bị điều kiện tháng năm
                                    declare @m int,@y int, @m1 int, @y1 int
                                    set @m = month('{0}')
                                    set @y = year('{0}')
                                    if (@m = 1)
                                    begin
	                                    set @m1 = 12
	                                    set @y1 = @y - 1
                                    end
                                    else
                                    begin
	                                    set @m1 = @m - 1
	                                    set @y1 = @y
                                    end

                                    select	sum(PhatSinh) * dm.HMNo/100
                                    from	wCNPThu w inner join DMKH dm on w.MaKH = dm.MaKH
                                    where	dm.HTTT = N'Hạn mức' and month(w.NgayCT) = @m1 and year(w.NgayCT) = @y1
                                            and w.MaKH = '{1}'
									group by w.MaKH, dm.HMNo"                                    , drCur["NgayCT"], makh);
                object  m2 = db.GetValue(s);
                decimal d2 = (m2 == null || m2 == DBNull.Value) ? 0 : decimal.Parse(m2.ToString());
                //tri gia ton kho
                s = @"select	sum(
		                    (case when b.loai = N'Thùng' then (b.soluong * d.giaban) else (round(b.soluong * d.dai * d.rong/10000,0) * round(d.giaban,0)) end) 
		                    - (case when b.loai = N'Thùng' then (soluong_x * d.giaban) else (round(soluong_x * d.dai * d.rong/10000,0) * round(d.giaban,0)) end) 
		                    - isnull((case when b.loai = N'Thùng' then (slxgp * d.giaban) else (round(slxgp * d.dai * d.rong/10000,0) * round(d.giaban,0)) end), 0))
                    from	blvt b 
                            inner join dtdonhang d on b.dtdhid = d.dtdhid
                            inner join mtdonhang m on m.mtdhid = d.mtdhid 
                    where	m.makh = '"     + makh + "' and b.loi = 0";
                object  m3 = db.GetValue(s);
                decimal d3 = m3 == DBNull.Value ? 0 : decimal.Parse(m3.ToString());
                XtraMessageBox.Show(string.Format(msg, d0.ToString("###,###,###,##0"), d1.ToString("###,###,###,##0"),
                                                  d2.ToString("###,###,###,##0"), d3.ToString("###,###,###,##0"), d4.ToString("###,###,###,##0")),
                                    Config.GetValue("PackageName").ToString());
            }
            //if (tableName == "MTDonHang")
            //    CapNhatNL(drCur);
            if (!_info.Result)      //khong chon duoc nguyen lieu voi kho giay phu hop
            {
                return;
            }

            int isShowNl = Config.GetValue("xemNguyenLieu") != null?Convert.ToInt32(Config.GetValue("xemNguyenLieu")) : 0;

            if (isShowNl == 1)
            {
                //thong bao ve danh sach nguyen lieu su dung va ton kho
                if (XtraMessageBox.Show("Bạn có muốn xem nguyên liệu sử dụng không?",
                                        Config.GetValue("PackageName").ToString(), MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    //LẤY SỐ TỒN TRONG VIEW wDMNL2
                    dtDMNL = db.GetDataTable("Select * from wDMNL2");
                    DataTable dtDSNL = LayDSNL(drCur);
                    FrmDSNL   frmNL  = new FrmDSNL(dtDSNL);
                    frmNL.ShowDialog();
                }
            }

            TaoPhieuXuat();

            if (tableName == "MTLSX")
            {
                SoMT();
            }
            string dienGiai = tableName == "MTDonHang" ? "đơn hàng" : "lệnh sản xuất";

            _info.Result = (XtraMessageBox.Show("Bạn có muốn lưu " + dienGiai + " này không?",
                                                Config.GetValue("PackageName").ToString(), MessageBoxButtons.YesNo) == DialogResult.Yes);
        }