public ActionResult SuaCanBo_Submit(String iID_MaBangLuongChiTiet, String ParentID)
        {
            Boolean CoCapNhapDuLieu = true;
            String MaND = User.Identity.Name;
            String IPSua = Request.UserHostAddress;

            DataTable dtChiTiet = LuongModels.Get_ChiTietBangLuongChiTiet(iID_MaBangLuongChiTiet);
            DataTable dtPhuCap = BangLuongChiTietModels.Get_DataTable_PhuCap("", "", "", iID_MaBangLuongChiTiet);

            int iNamBangLuong = Convert.ToInt32(dtChiTiet.Rows[0]["iNamBangLuong"]);
            int iThangBangLuong = Convert.ToInt32(dtChiTiet.Rows[0]["iThangBangLuong"]);
            string iID_MaCanBo = Convert.ToString(dtChiTiet.Rows[0]["iID_MaCanBo"]);

            //<-- Cập nhập bảng lương chi tiết
            Bang bangChiTiet = new Bang("L_BangLuongChiTiet");
            bangChiTiet.MaNguoiDungSua = User.Identity.Name;
            bangChiTiet.IPSua = Request.UserHostAddress;
            NameValueCollection arrLoi = bangChiTiet.TruyenGiaTri(ParentID, Request.Form);
            bangChiTiet.GiaTriKhoa = iID_MaBangLuongChiTiet;
            bangChiTiet.DuLieuMoi = false;
            BangLuongChiTietModels.DieuChinhLaiBangTruocKhiGhi(bangChiTiet, iNamBangLuong, iThangBangLuong);

            if (CanBo_HoSoNhanSuModels.KiemTraDuocPhepSuaNhanhCanBo(ParentID, iID_MaCanBo, Request.Form, ref arrLoi)==false)
            {
                //Nếu tham số sửa sai thì sẽ báo lỗi
                for (int i = 0; i <= arrLoi.Count - 1; i++)
                {
                    ModelState.AddModelError(ParentID + "_" + arrLoi.GetKey(i), arrLoi[i]);
                }
                NameValueCollection dataLoi = new NameValueCollection();
                dataLoi.Add(Request.Form);
                ViewData["data"] = dataLoi;
                return View(sViewPath + "Dialogs/Luong_ThemSuaCanBo_Dialog.aspx");
            }

            //<--Điền thông tin từ bảng Bậc lương
            String iID_MaNgachLuong = Convert.ToString(bangChiTiet.CmdParams.Parameters["@iID_MaNgachLuong_CanBo"].Value);
            String iID_MaBacLuong = Convert.ToString(bangChiTiet.CmdParams.Parameters["@iID_MaBacLuong_CanBo"].Value);
            DataTable dtBacLuong = LuongModels.Get_ChiTietDanhMucBacLuong(iID_MaNgachLuong, iID_MaBacLuong);

            Double rHeSoLuong = Convert.ToDouble(dtBacLuong.Rows[0]["rHeSoLuong"]);
            Double rHeSo_ANQP = Convert.ToDouble(dtBacLuong.Rows[0]["rHeSo_ANQP"]);
            Object rLuongCoBan_HeSo_CanBo_Cu = 0;
            if (rHeSoLuong > 0)
            {
                rLuongCoBan_HeSo_CanBo_Cu = CommonFunction.ThemGiaTriVaoThamSo(bangChiTiet.CmdParams.Parameters, "@rLuongCoBan_HeSo_CanBo", rHeSoLuong);
            }
            Object rPhuCap_AnNinhQuocPhong_HeSo_Cu = CommonFunction.ThemGiaTriVaoThamSo(bangChiTiet.CmdParams.Parameters, "@rPhuCap_AnNinhQuocPhong_HeSo", rHeSo_ANQP);
            dtBacLuong.Dispose();
            //-->Điền thông tin từ bảng Bậc lương

            bangChiTiet.Save();
            // END: Cập nhập bảng lương chi tiết -->

            //Thay đổi các hệ số phụ cấp của các phụ cấp ẩn: Chức vụ, thâm niên...
            BangCSDL bangCSDL = new BangCSDL("L_BangLuongChiTiet");
            List<String> arrDSMaCot = bangCSDL.DanhSachTruong();
            for (int i = 0; i < arrDSMaCot.Count; i++)
            {
                String TenTruong = arrDSMaCot[i];
                if (TenTruong.StartsWith("rPhuCap_") && TenTruong.EndsWith("_HeSo")==false)
                {
                    String sGiaTri = "";
                    if (TenTruong == "rPhuCap_AnNinhQuocPhong")
                    {
                        sGiaTri = Convert.ToString(rHeSo_ANQP);
                    }
                    else if (Request.Form[ParentID + "_" + TenTruong + "_HeSo"] != null)
                    {
                        sGiaTri = Request.Form[ParentID + "_" + TenTruong + "_HeSo"];
                    }
                    if (CommonFunction.IsNumeric(sGiaTri))
                    {
                        //Phải có giá trị mới thay đổi hệ số phụ cấp
                        double rGiaTri = Convert.ToDouble(sGiaTri);
                        SqlCommand cmd = new SqlCommand("UPDATE L_BangLuongChiTiet_PhuCap SET rHeSo=@rHeSo WHERE iID_MaBangLuongChiTiet=@iID_MaBangLuongChiTiet AND sMaTruongHeSo_BangLuong=@sMaTruongHeSo_BangLuong");
                        cmd.Parameters.AddWithValue("@rHeSo", rGiaTri);
                        cmd.Parameters.AddWithValue("@iID_MaBangLuongChiTiet", iID_MaBangLuongChiTiet);
                        cmd.Parameters.AddWithValue("@sMaTruongHeSo_BangLuong", TenTruong + "_HeSo");
                        Connection.UpdateDatabase(cmd, MaND, IPSua);
                    }
                }
            }

            //Cập nhập bảng phụ cấp
            NameValueCollection data = LuongModels.LayThongTinBangLuongChiTiet(iID_MaBangLuongChiTiet);
            String iID_MaBangLuong = data["iID_MaBangLuong"];
            String TenBangChiTiet = "L_BangLuongChiTiet_PhuCap";

            string idXauMaCacHang = Request.Form["idXauMaCacHang"];
            string idXauMaCacCot = Request.Form["idXauMaCacCot"];
            string idXauGiaTriChiTiet = Request.Form["idXauGiaTriChiTiet"];
            string idXauCacHangDaXoa = Request.Form["idXauCacHangDaXoa"];
            string idXauDuLieuThayDoi = Request.Form["idXauDuLieuThayDoi"];

            String[] arrMaHang = idXauMaCacHang.Split(',');
            String[] arrHangDaXoa = idXauCacHangDaXoa.Split(',');
            String[] arrMaCot = idXauMaCacCot.Split(',');
            String[] arrHangGiaTri = idXauGiaTriChiTiet.Split(new string[] { BangDuLieu.DauCachHang }, StringSplitOptions.None);

            String iID_MaBangLuongChiTiet_PhuCap;

            //Luu cac hang sua
            String[] arrHangThayDoi = idXauDuLieuThayDoi.Split(new string[] { BangDuLieu.DauCachHang }, StringSplitOptions.None);
            for (int i = 0; i < arrMaHang.Length; i++)
            {
                iID_MaBangLuongChiTiet_PhuCap = arrMaHang[i];
                if (arrHangDaXoa[i] == "1")
                {
                    //Lưu các hàng đã xóa
                    if (iID_MaBangLuongChiTiet_PhuCap != "")
                    {
                        //Dữ liệu đã có
                        Bang bang_PhuCap = new Bang(TenBangChiTiet);
                        bang_PhuCap.DuLieuMoi = false;
                        bang_PhuCap.GiaTriKhoa = iID_MaBangLuongChiTiet_PhuCap;
                        bang_PhuCap.CmdParams.Parameters.AddWithValue("@iTrangThai", 0);
                        bang_PhuCap.MaNguoiDungSua = User.Identity.Name;
                        bang_PhuCap.IPSua = Request.UserHostAddress;
                        bang_PhuCap.Save();
                        CoCapNhapDuLieu = true;
                    }
                }
                else
                {
                    String[] arrGiaTri = arrHangGiaTri[i].Split(new string[] { BangDuLieu.DauCachO }, StringSplitOptions.None);
                    String[] arrThayDoi = arrHangThayDoi[i].Split(new string[] { BangDuLieu.DauCachO }, StringSplitOptions.None);
                    Boolean okCoThayDoi = false;
                    for (int j = 0; j < arrMaCot.Length; j++)
                    {
                        if (arrThayDoi[j] == "1")
                        {
                            okCoThayDoi = true;
                            break;
                        }
                    }
                    if (okCoThayDoi)
                    {
                        Bang bang_PhuCap = new Bang(TenBangChiTiet);
                        if (iID_MaBangLuongChiTiet_PhuCap == "")
                        {
                            //Du Lieu Moi
                            bang_PhuCap.DuLieuMoi = true;
                            bang_PhuCap.CmdParams.Parameters.AddWithValue("@iID_MaBangLuong", iID_MaBangLuong);
                            bang_PhuCap.CmdParams.Parameters.AddWithValue("@iID_MaBangLuongChiTiet", iID_MaBangLuongChiTiet);
                            bang_PhuCap.CmdParams.Parameters.AddWithValue("@bLuonCo", false);

                            //Them cac tham so tu bang L_BangLuongChiTiet
                            bang_PhuCap.CmdParams.Parameters.AddWithValue("@iNamBangLuong", data["iNamBangLuong"]);
                            bang_PhuCap.CmdParams.Parameters.AddWithValue("@iThangBangLuong", data["iThangBangLuong"]);
                            bang_PhuCap.CmdParams.Parameters.AddWithValue("@iID_MaDonVi", data["iID_MaDonVi"]);
                        }
                        else
                        {
                            //Du Lieu Da Co
                            bang_PhuCap.GiaTriKhoa = iID_MaBangLuongChiTiet_PhuCap;
                            bang_PhuCap.DuLieuMoi = false;
                        }
                        bang_PhuCap.MaNguoiDungSua = User.Identity.Name;
                        bang_PhuCap.IPSua = Request.UserHostAddress;

                        //Them tham so
                        for (int j = 0; j < arrMaCot.Length; j++)
                        {
                            if (arrThayDoi[j] == "1")
                            {
                                if (arrMaCot[j].EndsWith("_ConLai") == false)
                                {
                                    String Truong = "@" + arrMaCot[j];
                                    if (arrMaCot[j].StartsWith("b"))
                                    {
                                        //Nhap Kieu checkbox
                                        if (arrGiaTri[j] == "1")
                                        {
                                            bang_PhuCap.CmdParams.Parameters.AddWithValue(Truong, true);
                                        }
                                        else
                                        {
                                            bang_PhuCap.CmdParams.Parameters.AddWithValue(Truong, false);
                                        }
                                    }
                                    else if (arrMaCot[j].StartsWith("r") || (arrMaCot[j].StartsWith("i") && arrMaCot[j].StartsWith("iID") == false))
                                    {
                                        //Nhap Kieu so
                                        if (CommonFunction.IsNumeric(arrGiaTri[j]))
                                        {
                                            bang_PhuCap.CmdParams.Parameters.AddWithValue(Truong, Convert.ToDouble(arrGiaTri[j]));
                                        }
                                        else
                                        {
                                            bang_PhuCap.CmdParams.Parameters.AddWithValue(Truong, 0);
                                        }
                                    }
                                    else
                                    {
                                        //Nhap kieu xau
                                        bang_PhuCap.CmdParams.Parameters.AddWithValue(Truong, arrGiaTri[j]);
                                    }
                                }
                            }
                        }
                        bang_PhuCap.Save();
                        CoCapNhapDuLieu = true;
                    }
                }
            }
            if (CoCapNhapDuLieu)
            {
                BangLuongChiTiet_CaNhanModels.CapNhapBangLuongChiTiet(iID_MaBangLuongChiTiet, User.Identity.Name, Request.UserHostAddress, dtChiTiet.Rows[0], dtPhuCap);
            }
            string idAction = Request.Form["idAction"];
            if (idAction == "3")
            {
                String iID_MaBangLuongChiTiet_Tiep = BangLuongChiTietModels.Lay_iID_MaBangLuongChiTiet_Tiep(iID_MaBangLuong, iID_MaBangLuongChiTiet);
                if (iID_MaBangLuongChiTiet_Tiep != "")
                {
                    return RedirectToAction("ThemCanBo", new { iID_MaBangLuong = iID_MaBangLuong, iID_MaBangLuongChiTiet = iID_MaBangLuongChiTiet_Tiep });
                }
            }
            return RedirectToAction("ThemCanBo", new { iID_MaBangLuong = iID_MaBangLuong, iID_MaBangLuongChiTiet = iID_MaBangLuongChiTiet, Saved = 1 });
        }
Beispiel #2
0
        /// <summary>
        /// Hàm thêm các cột thêm của bảng
        /// </summary>
        protected void CapNhapDanhSachMaCot_Them()
        {
            BangCSDL bangCSDL = new BangCSDL("L_BangLuongChiTiet");
            List<String> arrDSTruong_Full = bangCSDL.DanhSachTruong();
            //int csMin = arrDSTruong_Full.IndexOf("iThangLamViec");
            int csMax = arrDSTruong_Full.IndexOf("iSTT");

            for (int j = 0; j < csMax; j++)
            {
                Boolean okThem = true;
                for (int i = 0; okThem && i < _arrDSTruong_Fixed.Length; i++)
                {
                    if (_arrDSTruong_Fixed[i] == arrDSTruong_Full[j])
                    {
                        okThem = false;
                        break;
                    }
                }
                for (int i = 0; okThem && i < _arrDSTruong_Slide.Length; i++)
                {
                    if (_arrDSTruong_Slide[i] == arrDSTruong_Full[j])
                    {
                        okThem = false;
                        break;
                    }
                }
                if (okThem)
                {
                    _arrDSMaCot.Add(arrDSTruong_Full[j]);
                    _arrTieuDe.Add(arrDSTruong_Full[j]);
                    _arrWidth.Add(0);
                    _arrHienThiCot.Add(false);
                    _arrSoCotCungNhom.Add(1);
                    _arrTieuDeNhomCot.Add("");
                }
            }
        }