Esempio n. 1
0
        private void frm4LuuHSPC_Load(object sender, EventArgs e)
        {
            var ngayDauThang = m_Thang;

            groupBox2.Text           = string.Format(groupBox2.Text, ngayDauThang.ToString("MM/yyyy"));
            tbTenNVLapbieuLuong.Text = Settings.Default.LastTenNVLapBieuLuong;
            var tableThongsoKetluongThang = DAO5.LayThongsoKetluongThang(ngayDauThang);

            numSanLuong.Value = (tableThongsoKetluongThang.Rows.Count == 0)
                                ? Settings.Default.LastSanLuong : (int)tableThongsoKetluongThang.Rows[0]["SanLuong"];
            numDonGia.Value = (tableThongsoKetluongThang.Rows.Count == 0)
                                ? Settings.Default.LastDonGia : (int)tableThongsoKetluongThang.Rows[0]["DonGia"];

            numSanluongGiacongNoibo.Value = (tableThongsoKetluongThang.Rows.Count == 0)
                                ? Settings.Default.LastSanluongGiaCongNoibo : (int)tableThongsoKetluongThang.Rows[0]["SanLuongGiaCongNoiBo"];
            numDongiaGiacongNoibo.Value = (tableThongsoKetluongThang.Rows.Count == 0)
                                ? Settings.Default.LastDongiaGiacongNoibo : (int)tableThongsoKetluongThang.Rows[0]["DonGiaGiaCongNoiBo"];

            numSanluongGiacongNgoai.Value = (tableThongsoKetluongThang.Rows.Count == 0)
                                ? Settings.Default.LastSanluongGiacongNgoai : (int)tableThongsoKetluongThang.Rows[0]["SanLuongGiaCongNgoai"];
            numDongiaGiacongNgoai.Value = (tableThongsoKetluongThang.Rows.Count == 0)
                                ? Settings.Default.LastDongiaGiacongNgoai : (int)tableThongsoKetluongThang.Rows[0]["DonGiaGiaCongNgoai"];

            numTrichQuyLuong.Value = (tableThongsoKetluongThang.Rows.Count == 0)
                                ? Settings.Default.LastTrichQuyLuong : (int)tableThongsoKetluongThang.Rows[0]["TrichQuyLuong"];
            numLuongTT.Value = (tableThongsoKetluongThang.Rows.Count == 0)
                                ? Convert.ToDecimal(Settings.Default.LastLuongToiThieu)
                                : Convert.ToDecimal(tableThongsoKetluongThang.Rows[0]["MucLuongToiThieu"]);
            numBoiDuongCa3.Value = (tableThongsoKetluongThang.Rows.Count == 0)
                                ? (Settings.Default.LastBoiDuongCa3) : Convert.ToDecimal(tableThongsoKetluongThang.Rows[0]["BoiDuongCa3"]);
            numDinhMucComTrua.Value = (tableThongsoKetluongThang.Rows.Count == 0)
                                ? Convert.ToDecimal(Settings.Default.LastDinhMucComTrua)
                                : Convert.ToDecimal(tableThongsoKetluongThang.Rows[0]["DinhMucComTrua"]);
        }
        private void frm_KBVang_Nhanh_Load(object sender, EventArgs e)
        {
            #region mất kết nối csdl thì báo

            if (SqlDataAccessHelper.TestConnection(SqlDataAccessHelper.ConnectionString) == false)
            {
                ACMessageBox.Show(Resources.Text_MatKetNoiCSDL, Resources.Caption_Loi, 2000);
                Close();
                return;
            }

            #endregion

            var tableLoaiVang = DAO5.LayDSLoaiVang();
            cbLoaiVang.DataSource    = tableLoaiVang;
            cbLoaiVang.ValueMember   = "AbsentCode";
            cbLoaiVang.DisplayMember = "AbsentDescription";

            List <frm_KBVang.Working> list = new List <frm_KBVang.Working>
            {
                new frm_KBVang.Working {
                    cong = 0.5f, hour = 4f
                },
                new frm_KBVang.Working {
                    cong = 1f, hour = 8f
                },
            };
            cbSoBuoi.DataSource    = list;
            cbSoBuoi.ValueMember   = "Hour";
            cbSoBuoi.DisplayMember = "Cong";
            cbSoBuoi.SelectedIndex = 1;             // mặc định cho số buổi là 1
        }
Esempio n. 3
0
        public static void HuyBo_TinhPCDB(cUserInfo nhanvien, cNgayCong ngayCong, List <structPCDB> dsxnPhuCapDb)
        {
            var cTemp = dsxnPhuCapDb.FindIndex(item => item.Ngay == ngayCong.Ngay);

            if (cTemp < 0)
            {
            }
            else
            {
                var n1 = DAO5.DeleteTinhPCDB(nhanvien.MaCC, ngayCong.Ngay);                 //info đã log
                dsxnPhuCapDb.Remove(dsxnPhuCapDb[cTemp]);
                ngayCong.TinhPCDB = false;
                ngayCong.PhuCaps._100_LVNN_Ngay  = 0f;
                ngayCong.PhuCaps._150_LVNN_Dem   = 0f;
                ngayCong.PhuCaps._200_LeTet_Ngay = 0f;
                ngayCong.PhuCaps._250_LeTet_Dem  = 0f;
                ngayCong.PhuCaps._Cus            = 0f;
                ngayCong.PhuCaps._TongPC         = 0f;
                ngayCong.TG.Tinh200   = TimeSpan.Zero;
                ngayCong.TG.Tinh260   = TimeSpan.Zero;
                ngayCong.TG.Tinh300   = TimeSpan.Zero;
                ngayCong.TG.Tinh390   = TimeSpan.Zero;
                ngayCong.TG.TinhPCCus = TimeSpan.Zero;
                TinhPCTC_CuaNgay(ngayCong, nhanvien.DSXNPhuCap50);
            }
        }
Esempio n. 4
0
 private void dtpThang_ValueChanged(object sender, EventArgs e)
 {
     try             //general try catch
     {
         var ngaydauthang = new DateTime(dtpThang.Value.Year, dtpThang.Value.Month, 1);
         Settings.Default.LastThangKetCong = ngaydauthang;
         Settings.Default.Save();
         #region lấy ds phòng đã kết công và check sẵn
         DataTable table = DAO5.LayDSPhongDaKetcong(ngaydauthang);                //tbd
         treePhongBan.AfterCheck -= treePhongBan_AfterCheck;
         //duyệt từng rows trong table và check node có id phòng,
         //chỉ check node có id tương ứng ko thực hiện check đệ quy
         var root = treePhongBan.Nodes[0];
         //clear các check cũ
         ClearCheckedNode(false, root);
         for (int i = 0; i < table.Rows.Count; i++)
         {
             int idPhong = (int)table.Rows[i]["IDPhong"];
             setCheckedNode_PhongDaKetcong(idPhong, root);                    //suyệt đệ quy chứ ko check đệ quy
         }
         treePhongBan.AfterCheck += treePhongBan_AfterCheck;
         #endregion
     } catch (Exception ex)             //general try catch
     {
         lg.Error(string.Format("[{0}]_[{1}]\n", this.Name, System.Reflection.MethodBase.GetCurrentMethod().Name), ex);
         MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi);
     }
 }
        public static void XemCongThoiGianChuaKetLuong(List <cUserInfo> DSNV, DateTime ngayBD, DateTime ngayKT)
        {
            XmlConfigurator.Configure();
            if (DSNV.Count == 0)
            {
                return;
            }
            #region nạp dữ liệu từ database
            var       Arr_MaCC       = (from nv in DSNV select nv.MaCC).ToList(); // tạo mảng danh sách mã chấm công để viết chuỗi query : or.. or
            DataTable tableArrayMaCC = MyUtility.Array_To_DataTable("tableArrayMaCC", Arr_MaCC);
            var       tableCheck_A   = DAO5.LayTableCIO_A5(tableArrayMaCC, ngayBD, ngayKT);
            var       tableCheck_V   = DAO5.LayTableCIO_V5(tableArrayMaCC, ngayBD, ngayKT);
            var       tableXPVang    = DAO5.LayTableXPVang5(tableArrayMaCC, ngayBD, ngayKT);
            var       tableXNPC      = DAO5.LayTableXacNhanPhuCap(tableArrayMaCC, ngayBD, ngayKT, Duyet: true);
            var       tableNgayLe    = DAO5.DocNgayLe(ngayBD, ngayKT);
            #endregion

            #region transfer dữ liệu sang object
            foreach (var nv in DSNV)
            {
                var tempMaCC = nv.MaCC;
                nv.NgayCongBD_Bef2D = ngayBD;
                nv.NgayCongKT_Aft2D = ngayKT;
                LoadDSCheck_A5(tempMaCC, tableCheck_A, out nv.DS_Check_A);
                LoadDSCIO_V5(tempMaCC, tableCheck_V, out nv.DS_CIO_V);
                LoadDSXPVang_Le(tempMaCC, tableXPVang, tableNgayLe, nv.DSVang);
                LoadDSXNPC5(tempMaCC, tableXNPC, out nv.DSXNPC5);
                // khởi tạo danh sách ngày công
                KhoiTaoDSNgayCong(nv.DSNgayCong, ngayBD.AddDays(-2d), ngayKT.AddDays(2d));
            }

            #endregion
            #region xử lý
            var DS_Check_KoHopLe_AllNV = new List <cCheck>();
            var ds_raa3_vao1           = new List <cCheck>();
            foreach (var nv in DSNV)
            {
                List <cCheck> DS_Check_KoHopLe_1NV;
                LoaiBoCheckKoHopLe15(nv.DS_Check_A, out DS_Check_KoHopLe_1NV);                // loại bỏ check cùng loại trong 30ph, IO 30 phút
                DS_Check_KoHopLe_AllNV.AddRange(DS_Check_KoHopLe_1NV);                        // add vào ds ko hợp lệ của nhiều nhân viên để xóa sau
                GhepCIO_A2(nv.DS_Check_A, out nv.DS_CIO_A);
                XetCa_ListCIO_A3_5(nv.DS_CIO_A, nv.LichTrinhLV, ds_raa3_vao1, nv.DS_Check_A); // xét thuộc ThuocCa, update thuộc ngày công, tách ThuocCa 3&1 nếu có, rồi tính công//nv.MacDinhTinhPC50, //[140615_4]
                XetCa_ListCIO_V4_5(nv.DS_CIO_V);
                TronDS_CIO_A_V5(nv.DS_CIO_A, nv.DS_CIO_V, out nv.DSVaoRa);
                PhanPhoi_DSVaoRa6(nv.DSVaoRa, nv.DSNgayCong);
                PhanPhoi_DSVang7(nv.DSVang, nv.DSNgayCong);
                TinhCong_ListNgayCong8_5(nv.DSNgayCong);                //ver 4.0.0.4
                TinhPhuCap_ListNgayCong9_5(nv.DSNgayCong, nv.DSXNPC5);
            }
            if (DS_Check_KoHopLe_AllNV.Count > 0)
            {
                DAO5.LoaiGioLienQuan(DS_Check_KoHopLe_AllNV);
            }
            if (ds_raa3_vao1.Count > 0)
            {
                DAO5.ThemGio_ra3_vao1(ds_raa3_vao1);
            }
            #endregion
        }
Esempio n. 6
0
        public void LoadGrid()
        {
            //kiem tra ket noi csdl

            DataTable tableShift = DAO5.LoadDataSourceShift();

            gridControl.DataSource = tableShift;
        }
Esempio n. 7
0
        private void btnThem_Capnhat_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }
            #region ko cho chỉnh sửa giờ nếu khoảng thời gian xem công tồn tại các ngày đã kết lương

            if (XL.Kiemtra(m_thang.Date, MyUtility.LastDayOfMonth(m_thang)))
            {
                MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "chỉnh sửa thu chi tháng", "thực hiện thao tác", ""),
                                Resources.Caption_ThongBao, MessageBoxButtons.OK);
                return;
            }

            #endregion


            #region lấy thông tin từ form

            int?macc = (int?)lbUserEnrollNumber.Tag;
            if (macc == null)
            {
                ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000);
                return;
            }
            double tamung = 0d, thuchiKhac = 0d, luongDieuchinh = 0d;
            float  mucDongBHXH = 0f;
            if (float.TryParse(tbMucDongBHXH.Text, out mucDongBHXH) == false)
            {
                ACMessageBox.Show("Mức đóng BHXH chưa hợp lệ. Vui lòng nhập lại.", Resources.Caption_Loi, 2000);
                return;
            }

            tamung         = Convert.ToDouble(numTamUng.Value);
            thuchiKhac     = Convert.ToDouble(numThuchiKhac.Value);
            luongDieuchinh = Convert.ToDouble(numLuongdieuchinh.Value);

            #endregion

            // thực hiện query
            int kq = DAO5.CapnhatThuchiThang((int)macc, m_thang, luongDieuchinh, tamung, thuchiKhac, mucDongBHXH);
            DAO5.GhiNhatKyThaotac("Thêm khoản thu chi tháng",
                                  string.Format("Thêm tạm ứng [{2}], lương điều chỉnh [{3}], mức đóng BHXH [{4}], thu chi khác [{5}] tháng [{0}]... cho 1 NV có mã chấm công [{1}]",
                                                m_thang.ToString("dd/MM/yyyy"), macc,
                                                tamung.ToString("###,###,###,###,###,##0"),
                                                luongDieuchinh.ToString("###,###,###,###,###,##0"),
                                                mucDongBHXH.ToString("#0.00"),
                                                thuchiKhac.ToString("###,###,###,###,###,##0")), maCC: macc);

            if (kq == 0)
            {
                MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi);
            }
            reloadGridDSThuChi();
        }
        public static void XemCong_v08_2(List <cUserInfo> dsnv, DateTime ngayBD_Bef2D, DateTime ngayKT_Aft2D)
        {
            if (dsnv.Count == 0)
            {
                return;
            }
            #region nạp dữ liệu từ database
            var       Arr_MaCC       = (from nv in dsnv select nv.MaCC).ToList(); // tạo mảng danh sách mã nv chấm công
            DataTable tableArrayMaCC = MyUtility.Array_To_DataTable("tableArrayMaCC", Arr_MaCC);
            var       tableCheck_A   = DAO5.LayTableCIO_A5(tableArrayMaCC, ngayBD_Bef2D, ngayKT_Aft2D);
            var       tableCheck_V   = DAO5.LayTableCIO_V5(tableArrayMaCC, ngayBD_Bef2D, ngayKT_Aft2D);
            var       tableXPVang    = DAO5.LayTableXPVang5(tableArrayMaCC, ngayBD_Bef2D, ngayKT_Aft2D);
            var       tableXNPC      = DAO5.LayTableXacNhanPhuCap(tableArrayMaCC, ngayBD_Bef2D, ngayKT_Aft2D, Duyet: true);
            var       tableNgayLe    = DAO5.DocNgayLe(ngayBD_Bef2D, ngayKT_Aft2D);
            #endregion

            #region transfer dữ liệu sang object
            foreach (var nv in dsnv)
            {
                var tempMaCC = nv.MaCC;
                nv.NgayCongBD_Bef2D = ngayBD_Bef2D;
                nv.NgayCongKT_Aft2D = ngayKT_Aft2D;
                LoadDSCheck_A5(tempMaCC, tableCheck_A, out nv.DS_Check_A);
                LoadDSCIO_V5(tempMaCC, tableCheck_V, out nv.DS_CIO_V);
                LoadDSXPVang_Le(tempMaCC, tableXPVang, tableNgayLe, nv.DSVang);
                LoadDSXNPC50(tempMaCC, tableXNPC, nv.DSXNPhuCap50);
                // khởi tạo danh sách ngày công
                KhoiTaoDSNgayCong(nv.DSNgayCong, ngayBD_Bef2D, ngayKT_Aft2D);
            }

            #endregion
            #region xử lý
            //var DS_Check_KoHopLe_AllNV = new List<cCheck>();
            //var ds_raa3_vao1 = new List<cCheck>();
            //foreach (var nv in dsnv) {
            //	var DS_Check_KoHopLe_1NV = new List<cCheck>();
            //	LoaiBoCheckKoHopLe1(nv.DS_Check_A, ref DS_Check_KoHopLe_1NV);// loại bỏ check cùng loại trong 30ph, IO 30 phút
            //	DS_Check_KoHopLe_AllNV.AddRange(DS_Check_KoHopLe_1NV);// add vào ds ko hợp lệ của nhiều nhân viên để xóa sau
            //	GhepCIO_A2(nv.DS_Check_A, nv.DS_CIO_A);
            //	XetCa_ListCIO_A3(nv.DS_CIO_A, nv.LichTrinhLV, ds_raa3_vao1, nv.DS_Check_A);// xét thuộc ca, update thuộc ngày công, tách ca 3&1 nếu có, rồi tính công//nv.MacDinhTinhPC50, //[140615_4]
            //	XetCa_ListCIO_V4_5(nv.DS_CIO_V, nv.LichTrinhLV);
            //	TronDS_CIO_A_V5(nv.DS_CIO_A, nv.DS_CIO_V, nv.DSVaoRa);
            //	PhanPhoi_DSVaoRa6(nv.DSVaoRa, nv.DSNgayCong);
            //	PhanPhoi_DSVang7(nv.DSVang, nv.DSNgayCong);
            //	TinhCong_ListNgayCong8(nv.DSNgayCong, nv.StartNT, nv.EndddNT);//ver 4.0.0.4
            //	TinhPCTC_TrongListXNPCTC9(nv.DSXNPhuCap50, nv.DSNgayCong);
            //	TinhPCDB_TrongListXNPCDB10(nv.DSXNPhuCapDB, nv.DSNgayCong);
            //}
            //if (DS_Check_KoHopLe_AllNV.Count > 0) DAO.LoaiGioLienQuan(DS_Check_KoHopLe_AllNV);
            //if (ds_raa3_vao1.Count > 0) DAO.ThemGio_ra3_vao1(ds_raa3_vao1);
            #endregion
        }
Esempio n. 9
0
        public static bool HuyKetLuongThang(DateTime ngaydauthang)
        {
            var query = @" delete from ThongSoKetLuongThang where Thang=@Thang 
						   delete from KetLuongThang where Thang=@Thang "                        ;
            var kq    = SqlDataAccessHelper.ExecNoneQueryString(query, new string[] { "@Thang" }, new object[] { ngaydauthang });

            DAO5.GhiNhatKyThaotac("Huỷ kết lương tháng", string.Format("Huỷ kết lương tháng [{0}]", ngaydauthang.ToString("MM/yyyy")));
            if (kq == 0)
            {
                return(false);
            }
            return(true);
        }
        private void dtpThang_ValueChanged(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            // kiểm tra nếu tháng đó đã kết công thì ko cho nhập
            m_thang = new DateTime(dtpThang.Value.Year, dtpThang.Value.Month, 1);
            DataTable tableThangketcong           = DAO5.KiemtraTinhtrangKetcongThang(m_thang, (int)m_currRowNV["UserEnrollNumber"]);
            DataTable tableKhoangThoigianCongnhat = DAO5.LayKhoangThoigianCongnhat(m_thang, (int)m_currRowNV["UserEnrollNumber"]);

            if (tableThangketcong.Rows.Count > 0)             // đã kết công --> ko cho nhập
            {
                checkLamCongnhat.Enabled = false;
                checkNVChinhThuc.Enabled = false;
                if (tableKhoangThoigianCongnhat.Rows.Count == 0)                  // chưa khai báo công nhật tháng này
                {
                    checkLamCongnhat.Checked = false;
                    dtpNgayBDCongnhat.Value  = m_thang;
                    dtpNgayKTCongnhat.Value  = m_thang;
                    checkNVChinhThuc.Checked = false;
                }
                else                  // đã khai báo công nhật tháng này
                {
                    checkLamCongnhat.Checked = true;
                    dtpNgayBDCongnhat.Value  = (DateTime)tableKhoangThoigianCongnhat.Rows[0]["NgayBatDau"];
                    dtpNgayKTCongnhat.Value  = (DateTime)tableKhoangThoigianCongnhat.Rows[0]["NgayKetThuc"];
                    checkNVChinhThuc.Checked = (bool)tableKhoangThoigianCongnhat.Rows[0]["NVChinhThuc"];
                }
            }
            else             // chưa kết công cho phép nhập, kiểm tra nv đó có nhập ngày công nhật chưa, có thì fill, ko thì check false
            {
                checkLamCongnhat.Enabled = true;
                checkNVChinhThuc.Enabled = true;
                if (tableKhoangThoigianCongnhat.Rows.Count == 0)                  // chưa khai báo công nhật tháng này -> cho phép nhập
                {
                    checkLamCongnhat.Checked = false;
                    dtpNgayBDCongnhat.Value  = m_thang;                   // cập nhật mặc định ngày đầu tháng
                    dtpNgayKTCongnhat.Value  = m_thang;
                    checkNVChinhThuc.Checked = false;
                }
                else                 // đã khai báo công nhật --> fill
                {
                    checkLamCongnhat.Checked = true;
                    dtpNgayBDCongnhat.Value  = (DateTime)tableKhoangThoigianCongnhat.Rows[0]["NgayBatDau"];
                    dtpNgayKTCongnhat.Value  = (DateTime)tableKhoangThoigianCongnhat.Rows[0]["NgayKetThuc"];
                    checkNVChinhThuc.Checked = (bool)tableKhoangThoigianCongnhat.Rows[0]["NVChinhThuc"];
                }
            }
        }
        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            #region ko cho chỉnh sửa giờ nếu khoảng thời gian xem công tồn tại các ngày đã kết lương

            if (XL.Kiemtra(new DateTime(dtpThang.Value.Year, dtpThang.Value.Month, 1), new DateTime(dtpThang.Value.Year, dtpThang.Value.Month, DateTime.DaysInMonth(dtpThang.Value.Year, dtpThang.Value.Month))))
            {
                MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "khai báo vắng", "xoá khai báo vắng", ""),
                                Resources.Caption_ThongBao, MessageBoxButtons.OK);
                return;
            }


            #endregion


            #region hỏi lại trước khi thực hiện

            if (MessageBox.Show(Resources.Text_XacNhanXoaKhaiBaoVang, Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No)
            {
                return;
            }

            #endregion

            dgrdNgayVang.EndEdit();
            dgrdNgayVang.Update();

            var arrRecord = (from DataGridViewRow dataGridViewRow in dgrdNgayVang.SelectedRows
                             select((DataRowView)dataGridViewRow.DataBoundItem)).ToList();
            if (arrRecord.Count == 0)
            {
                return;
            }

            var kqThaotac = DAO5.XoaNgayVangNV(arrRecord);
            if (kqThaotac == false)
            {
                MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi);
            }
            GC.Collect();

            Thread.Sleep(20);
            btnLietKe.PerformClick();
        }
Esempio n. 12
0
        internal static List <int> LayPhanQuyen()
        {
            List <int> kq = new List <int>();
            DataTable  dt = DAO5.PhanQuyenMenu(XL2.currUserID);

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                bool enable = (bool)dt.Rows[i]["IsYes"];
                if (enable)
                {
                    kq.Add((int)dt.Rows[i]["MenuID"]);
                }
            }
            return(kq);
        }
Esempio n. 13
0
        public static void XacNhan_CIO_A(int MaCC, DateTime timevao, DateTime timeraa, cCa currShift, bool bDuyetCPTre, bool bDuyetCPSom, int soPhutLamThem, bool choPhepTinhPc50, string lydo, string ghichu,
                                         bool bVaoTreLaCV, bool bRaaSomLaCV)//ver 4.0.0.4
        {
            if (timeraa - timevao <= TimeSpan.Zero || timeraa - timevao > XL2._24h00)
            {
                return;                 // ko đủ điều kiện xác nhận
            }
            int outputIDXN;

            // 2. xác nhận ca dưới csdl
            DAO5.XacNhanCa(MaCC, timevao, 21, "PC", timeraa, 22, "PC",
                           currShift.ID, currShift.Code, bDuyetCPTre, bDuyetCPSom, soPhutLamThem, lydo, ghichu, out outputIDXN,
                           bVaoTreLaCV, bRaaSomLaCV);     //ver 4.0.0.4
            DAO5.CheckTinhPC50(MaCC, timevao.Date, choPhepTinhPc50);
        }
        private void btnXoaKBVang_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            #region ko cho chỉnh sửa giờ nếu khoảng thời gian xem công tồn tại các ngày đã kết lương

            if (XL.Kiemtra(dtpNgayBD.Value.Date, dtpNgayKT.Value.Date))
            {
                MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "xem công", "xoá khai báo vắng", "xem công"),
                                Resources.Caption_ThongBao, MessageBoxButtons.OK);
                return;
            }

            #endregion

            DataGridView currDataGrid = XacDinhDataGridViewDangChon();

            if (MessageBox.Show("Xoá các khai báo vắng của nhân viên với các ngày được chọn?", Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No)
            {
                return;
            }
            if (currDataGrid.SelectedRows.Count != 0)
            {
                IEnumerable <dynamic> arrRecord = (from DataGridViewRow row in currDataGrid.SelectedRows
                                                   let rowViews = (DataRowView)row.DataBoundItem
                                                                  select new { MaCC = (int)rowViews["UserEnrollNumber"], NgayVang = (DateTime)rowViews["TimeStrNgay"] }).ToList();

                if (arrRecord.Any() == false)
                {
                    return;
                }

                string query = " delete from Absent where UserEnrollNumber = @UserEnrollNumber and TimeDate = @TimeDate ";
                foreach (dynamic obj in arrRecord)
                {
                    int kq = SqlDataAccessHelper.ExecNoneQueryString(
                        query,
                        new string[] { "@UserEnrollNumber", "@TimeDate" },
                        new object[] { obj.MaCC, obj.NgayVang });
                    DAO5.GhiNhatKyThaotac("Xoá các khai báo vắng trong ngày",
                                          string.Format("Xoá tất cả khai báo vắng của NV có mã chấm công [{0}] trong ngày [{1}]", (int)obj.MaCC, ((DateTime)obj.NgayVang).ToString("dd/MM/yyyy")), maCC: (int)obj.MaCC);
                }
                btnXem.PerformClick();
            }
        }
        private void frmCapNhatNVHangLoat_Load(object sender, EventArgs e)
        {
            List <cPhongBan> dspb = new List <cPhongBan>();

            XL.KhoiTaoDSPhongBan(dspb);
            XL.loadTreePhgBan(treePhongBan, XL2.TatcaPhongban, dspb);

            cbChucVu.DataSource    = DAO5.LoadDataSourceChucVu(false);
            cbChucVu.DisplayMember = "ChucVu";
            cbChucVu.ValueMember   = "IDChucVu";

            var tableLichTrinh = SqlDataAccessHelper.ExecuteQueryString("select * from Schedule");

            cbLichTrinh.DataSource    = tableLichTrinh;
            cbLichTrinh.DisplayMember = "SchName";
            cbLichTrinh.ValueMember   = "SchID";
        }
Esempio n. 16
0
        private void dtpThang_ValueChanged(object sender, EventArgs e)
        {
            var ngaydauthang = new DateTime(dtpThang.Value.Year, dtpThang.Value.Month, 1);

            XL.loadTreePhgBan(treePhongBan, XL2.TatcaPhongban, XL2.TatcaPhongban);
            treePhongBan.ExpandAll();
            #region lấy ds phòng đã kết công và check sẵn
            DataTable table = DAO5.LayDSPhongDaKetcong(ngaydauthang);            //tbd
            //duyệt từng rows trong table và check node có id phòng,
            //chỉ check node có id tương ứng ko thực hiện check đệ quy
            for (int i = 0; i < table.Rows.Count; i++)
            {
                int idPhong = (int)table.Rows[i]["IDPhong"];
                setCheckedNode_PhongDaKetcong(idPhong, treePhongBan.Nodes[0]);
            }
            #endregion
        }
Esempio n. 17
0
        private void btnXoaKBVang_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            #region chưa chọn nhân viên thì báo
            var listMaCC_NV = (from DataGridViewRow dataGridViewRow in dgrdTongHop.SelectedRows
                               let row = (DataRowView)dataGridViewRow.DataBoundItem
                                         select(int) row["UserEnrollNumber"]).ToList();
            if (listMaCC_NV.Count == 0)
            {
                ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000);
                return;
            }

            #endregion

            if (MessageBox.Show(string.Format("Xoá tất cả khai báo vắng ngày {0} của các nhân viên được chọn?", dtpNgay.Value.Date.ToString("dddd dd/MM/yyyy")),
                                Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No)
            {
                return;
            }
            IEnumerable <dynamic> templist = (from macc in listMaCC_NV
                                              select new { MaCC = macc, NgayVang = dtpNgay.Value.Date });
            string query = " delete from Absent where UserEnrollNumber = @UserEnrollNumber and TimeDate = @TimeDate ";
            try
            {
                foreach (dynamic obj in templist)
                {
                    SqlDataAccessHelper.ExecNoneQueryString(
                        query,
                        new string[] { "@UserEnrollNumber", "@TimeDate" },
                        new object[] { obj.MaCC, obj.NgayVang });
                    DAO5.GhiNhatKyThaotac("Xoá các khai báo vắng trong ngày",
                                          string.Format("Xoá tất cả khai báo vắng của NV có mã chấm công [{0}] trong ngày [{1}]", (int)obj.MaCC, ((DateTime)obj.NgayVang).ToString("dd/MM/yyyy")), maCC: (int)obj.MaCC);
                }
            }
            catch (Exception ex)
            {
                lg.Error(string.Format("[{0}]_[{1}]\n", this.Name, System.Reflection.MethodBase.GetCurrentMethod().Name), ex);
                MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi);
            }
            dtpNgay_ValueChanged(null, null);
        }
        private void frmQLLuongCongNhat_Load(object sender, EventArgs e)
        {
            groupBox1.Text = string.Format(groupBox1.Text, m_thang.ToString("MM/yyyy"));            // danh sách nhân viên chi công nhật tháng {0}
            #region kiểm tra kết nối csdl, mất kết nối thì thoát

            if (SqlDataAccessHelper.TestConnection(SqlDataAccessHelper.ConnectionString) == false)
            {
                ACMessageBox.Show(Resources.Text_MatKetNoiCSDL, Resources.Caption_Loi, 4000);
                return;
            }

            #endregion
            // load danh sách nv tính lương công nhật trong tháng
            m_OriginTableCongNhat          = DAO5.LayTableCongNhat(m_thang);
            dgrdDSLuongCongnhat.DataSource = m_OriginTableCongNhat;
            dgrdDSLuongCongnhat.ClearSelection();
        }
Esempio n. 19
0
        public static bool CheckLogIn(string tempUsername, string tempPassword, string passroot,
                                      ref string tmpConnStr, ref int loaiTK, ref int currUserID, ref string currUserAccount)
        {
            var kqDocFile = KiemtraDocFileKetnoiDL(Settings.Default.ConnectionStringPath, ref tmpConnStr);
            var kq        = false;

            if (!kqDocFile)               // ko đọc được file thì trả về false
            {
                return(false);
            }

            // đọc được file thành công, kiểm tra kết nối csdl
            if (SqlDataAccessHelper.TestConnection(tmpConnStr) == false)
            {
                ACMessageBox.Show(Resources.Text_MatKetNoiCSDL, Resources.Caption_Loi, 3000);
                return(false);
            }

            // kết nối csdl thành công, kiểm tra loại tài khoản
            SqlDataAccessHelper.ConnectionString = tmpConnStr;
            if (tempUsername == "root" && tempPassword == passroot)               //log in bằng tài khoản root
            {
                currUserID      = int.MaxValue;
                currUserAccount = tempUsername;
                loaiTK          = 1;
                kq = true;
            }
            else              // kiểm tra login bằng tài khoản thường
            {
                string    passEncrypt = MyUtility.Mahoa(tempPassword);
                DataTable dt          = DAO5.LogIn(tempUsername, passEncrypt);
                if (dt.Rows.Count != 0)                   // tài khoản thường ->
                {
                    currUserID      = (int)dt.Rows[0]["UserID"];
                    currUserAccount = dt.Rows[0]["UserAccount"].ToString();
                    loaiTK          = 0;
                    kq = true;
                }
                else
                {
                    MessageBox.Show(Resources.Text_Acc_Pass_incorrect, Resources.Caption_ThongBao, MessageBoxButtons.OK);
                    kq = false;
                }
            }
            return(kq);
        }
 private void PhucHoiGioXoa(List <DataRowView> listRowView)
 {
     if (listRowView.Count == 0)
     {
         return;
     }
     foreach (DataRowView rowView in listRowView)
     {
         var UserEnrollNumber = (int)rowView["UserEnrollNumber"];
         var MachineNo        = (int)rowView["MachineNo"];
         var TimeStr          = (DateTime)rowView["TimeStr"];
         var kq = DAO5.PhucHoiGioXoa(UserEnrollNumber, MachineNo, TimeStr);
         if (kq == 0)
         {
             MessageBox.Show("Xảy ra lỗi trong quá trình thao tác. Vui lòng thử lại sau.");
             break;
         }
     }
 }
        private void buttonXoa_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            var shiftid = (lbShiftID.Tag != null) ? (int)(lbShiftID.Tag) : -1;

            if (shiftid != -1)
            {
                int n = DAO5.DelCa(shiftid);
                if (n == 0)
                {
                    MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            LoadGrid();            // thêm hoặc sửa xong thì load lại grid
        }
Esempio n. 22
0
        public static DataTable LayDSNV(bool?UserEnabled = null, int[] arrIDPhongBan = null)
        {
            var tableNV = DAO5.LayDSNV(arrIDPhongBan);
            var tableKQ = tableNV.Clone();

            foreach (DataRow dataRow in tableNV.Rows)
            {
                if (UserEnabled != null)                   // nếu có truyền trạng thái thì lấy theo trạng thái
                {
                    if (dataRow["UserEnabled"] == DBNull.Value || (bool)dataRow["UserEnabled"] != UserEnabled)
                    {
                        continue;
                    }
                }
                tableKQ.ImportRow(dataRow);                 // ko truyền trạng thái thì lấy hết
            }

            return(tableKQ);
        }
        private void btnLietKe_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            //1. lấy dữ liệu từ form
            dtpThang.Update();
            currMonth = dtpThang.Value;
            var ngayBD = DateTime.MinValue;
            var ngayKT = DateTime.MinValue;

            ngayBD = new DateTime(currMonth.Year, currMonth.Month, 1);
            ngayKT = new DateTime(currMonth.Year, currMonth.Month, DateTime.DaysInMonth(currMonth.Year, currMonth.Month));
            //-----------INFO bắt buộc EndEdit thao tác trên Grid rồi mới thực hiện xử lý tác vụ

            dgrdDSNVTrgPhg.EndEdit();
            dgrdDSNVTrgPhg.Update();

            //2. lấy danh sách nhân viên check, nếu chưa có nv nào check thì thông báo
            BindingContext[dgrdDSNVTrgPhg.DataSource].EndCurrentEdit();
            var listNV = (from DataGridViewRow dataGridViewRow in dgrdDSNVTrgPhg.Rows
                          let row = (DataRowView)dataGridViewRow.DataBoundItem
                                    where (row["check"] != DBNull.Value && (bool)row["check"])
                                    select((cUserInfo)row["cUserInfo"]).MaCC).ToList();

            if (listNV.Count == 0)
            {
                ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000);
                return;
            }

            var table = DAO5.LietKeNgayVangChoNV(listNV, ngayBD, ngayKT);

            dgrdNgayVang.DataSource = table;
            if (table.Rows.Count == 0)
            {
                ACMessageBox.Show("Các nhân viên đang chọn không vắng ngày nào trong tháng.", "Thông báo", 1500);
            }
            GC.Collect();
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            var val30 = (int)numPC30.Value;

            DAO5.UpdSetting((int)numPC30.Tag, val30.ToString());
            var val50 = (int)numPC50.Value;

            DAO5.UpdSetting((int)numPC50.Tag, val50.ToString());
            var valPCTCC3 = (int)numPCTCC3.Value;

            DAO5.UpdSetting((int)numPCTCC3.Tag, valPCTCC3.ToString());
            var val100 = (int)numPC100.Value;

            DAO5.UpdSetting((int)numPC100.Tag, val100.ToString());
            var val160 = (int)numPC160.Value;

            DAO5.UpdSetting((int)numPC160.Tag, val160.ToString());
            var val200 = (int)numPC200.Value;

            DAO5.UpdSetting((int)numPC200.Tag, val200.ToString());
            var val290 = (int)numPC290.Value;

            DAO5.UpdSetting((int)numPC290.Tag, val290.ToString());
            var valTGLamDemToiThieu = dateTimePicker1.Value.TimeOfDay;

            DAO5.UpdSetting((int)dateTimePicker1.Tag, valTGLamDemToiThieu.ToString(@"hh\:mm\:") + "00");
            var valChoPhepTre = (int)numPhutTre.Value;

            DAO5.UpdSetting((int)numPhutTre.Tag, valChoPhepTre.ToString());
            var valChoPhepSom = (int)numPhutSom.Value;

            DAO5.UpdSetting((int)numPhutSom.Tag, valChoPhepSom.ToString());
            var valLamThemAfterOT = (int)numPhutAfterOT.Value;

            DAO5.UpdSetting((int)numPhutAfterOT.Tag, valLamThemAfterOT.ToString());
            ACMessageBox.Show("Lưu thông số thành công.", "Thông báo", 2000);
        }
        private void btnCapNhat_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            #region ko cho cập nhật lương công nhật nếu tháng này đã đã kết lương

            if (XL.Kiemtra(m_thang, MyUtility.LastDayOfMonth(m_thang)))
            {
                MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "cập nhật thông tin làm việc công nhật", "cập nhật thông tin làm việc công nhật", ""),
                                Resources.Caption_ThongBao, MessageBoxButtons.OK);
                return;
            }

            #endregion

            // lấy thông tin từ form
            var UserEnrollNumber = (lbUserEnrollNumber.Tag == null) ? -1 : (int)lbUserEnrollNumber.Tag;
            var DonGiaLuong      = (int)numDonGiaLuong.Value;
            var TamUng           = Convert.ToDouble(numTamUng.Value);

            #region update đơn giá lương , tạm ứng xuống csdl
            //info ko cần lưu thành tiền vì lúc lưu xuống đã tính thành tiền để có cơ sở tính lương, lúc lấy lên thì tính ra số tổng rồi mới xuất bb
            string query = @" 
update DSNVChiCongNhatThang 
set DonGiaLuong=@DonGiaLuong, TamUng=@TamUng 
where UserEnrollNumber=@UserEnrollNumber and Thang=@Thang ";
            int    kq2   = SqlDataAccessHelper.ExecNoneQueryString(query,
                                                                   new string[] { "@DonGiaLuong", "@TamUng", "@UserEnrollNumber", "@Thang" },
                                                                   new object[] { DonGiaLuong, TamUng, UserEnrollNumber, m_thang });
            DAO5.GhiNhatKyThaotac("Cập nhật lương công nhật và tạm ứng",
                                  string.Format("Cập nhật đơn giá lương công nhật [{1}], tạm ứng [{2}] cho NV có mã chấm công [{0}]",
                                                UserEnrollNumber, DonGiaLuong.ToString(Settings.Default.numFormatMoney), TamUng.ToString(Settings.Default.numFormatMoney)), maCC: UserEnrollNumber);
            #endregion

            // sau khi cập nhật thì reload lại
            var table = DAO5.LayTableCongNhat(m_thang);
            dgrdDSLuongCongnhat.DataSource = table;
            dgrdDSLuongCongnhat.ClearSelection();
        }
Esempio n. 26
0
        public static void CheckTinhPC50_UpdORInsNew_Sort(cUserInfo nhanvien, DateTime ngay, bool giatri)
        {
            var n1    = DAO5.CheckTinhPC50(nhanvien.MaCC, ngay, giatri);
            var index = nhanvien.DSXNPhuCap50.FindIndex(o => o.Ngay == ngay);

            if (index < 0)               // chưa có --> tạo mới
            {
                var ngayXN_PCTC = new structPCTC {
                    Ngay = ngay, TinhPC50 = giatri
                };
                nhanvien.DSXNPhuCap50.Add(ngayXN_PCTC);
                nhanvien.DSXNPhuCap50.Sort(new cTemp1Comparer());
            }
            else               // đã có --> cập nhật
            {
                nhanvien.DSXNPhuCap50[index] = new structPCTC {
                    Ngay = ngay, TinhPC50 = giatri
                };
            }
        }
Esempio n. 27
0
        public static void KhoiTaoDSPhongBan(List <cPhongBan> phongBans)
        {
            phongBans.Clear();
            DataTable table = DAO5.LayDSTatCaPhongBan();

            phongBans.AddRange(from DataRow row in table.Rows
                               select new cPhongBan {
                ID       = (int)row["ID"],
                Ten      = row["Description"].ToString(),
                ViTri    = (row["ViTri"] != DBNull.Value) ? (int)row["ViTri"] : int.MaxValue,                                                // các phòng chưa được set thứ tự thì nằm bên dưới
                idParent = (int)row["RelationID"],
                //info ở đây sẽ ko xảy ra TH = null vì từ csdl sẽ ko null nhưng vẫn làm đúng, chỉ group phòng ban theo nv là bị null
                ChoPhep = false
            });
            foreach (cPhongBan phong in phongBans)
            {
                cPhongBan parent = phongBans.FirstOrDefault(item => item.ID == phong.idParent);                // info idparent = 0 nghĩa là node gốc
                phong.parent = parent;
            }
        }
Esempio n. 28
0
        private void lstTaikhoan_SelectedValueChanged(object sender, EventArgs e)
        {
            // lấy userid để load tree view, update check phòng ban chức năng
            DataRowView rowView         = lstTaikhoan.SelectedItem as DataRowView;
            int         Selected_UserID = (int)rowView["UserID"];

            // check, uncheck quyền cho các phòng ban trước, ds thao tác sau
            // VD: tk login duoc phan quyen 1_21; 2_21; 3_21; 7_21; 9_21 (format <idquyen>_<id_tk> thì lấy hết dspb này cho tk được phân quyền,
            // id nào có check thì phân quyền true, ko có thì phân quyền false.
            // VD: lấy lên chỉ được 1_25; 9_25 thì set true, còn lại 2_21; 3_21; 7_21; ko có trong kq lấy lên thì set false
            DataTable table1 = DAO5.LayDSPhong(Selected_UserID);

            treePhongBan.AfterCheck -= treePhongBan_AfterCheck;
            //set check ko đệ quy
            // đưa về root node trước khi thực hiện
            var root = treePhongBan.TopNode;

            GetTopLevelNode(ref root);            // mỗi lần duyệt node sẽ làm root node chuyển về parent của node cuối nên phải trả về node gốc để duyệt từ đầu
            while (root.PrevNode != null)
            {
                root = root.PrevNode;
            }

            SetQuyenPhongBan(root, table1);

            treePhongBan.AfterCheck += treePhongBan_AfterCheck;

            // check, uncheck quyền ds thao tác
            DataTable chucnang = LayDSChucNang(Selected_UserID);

            #region debug

            /*			for (int i = 0; i < chucnang.Rows.Count; i++) {
             *      DataRow r = chucnang.Rows[i];
             *      Debug.WriteLine("Selected_UserID=" + r["UserID"].ToString() + "\tMenuID=" + r["MenuID"].ToString() + "\tIsYes=" + r["IsYes"].ToString());
             * }*/
            #endregion
            checkQuyenThaotac.ItemCheck -= checkQuyenThaotac_ItemCheck;
            SetQuyenThaotac(chucnang);
            checkQuyenThaotac.ItemCheck += checkQuyenThaotac_ItemCheck;
        }
Esempio n. 29
0
        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }
            #region ko cho chỉnh sửa giờ nếu khoảng thời gian xem công tồn tại các ngày đã kết lương

            if (XL.Kiemtra(m_thang.Date, MyUtility.LastDayOfMonth(m_thang)))
            {
                MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "chỉnh sửa thu chi tháng", "thực hiện thao tác", ""),
                                Resources.Caption_ThongBao, MessageBoxButtons.OK);
                return;
            }

            #endregion

            #region lấy thông tin từ form

            int?macc = (int?)lbUserEnrollNumber.Tag;
            if (macc == null)
            {
                ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000);
                return;
            }

            #endregion

            // thực hiện query
            int kq = SqlDataAccessHelper.ExecNoneQueryString(
                " delete from DSThuChiThang where Thang=@Thang and UserEnrollNumber=@UserEnrollNumber ",
                new string[] { "@Thang", "@UserEnrollNumber" },
                new object[] { m_thang, macc });
            DAO5.GhiNhatKyThaotac("Xoá khoản thu chi tháng", string.Format("Xoá tạm ứng, lương điều chỉnh, mức đóng BHXH, thu chi khác tháng [{0}]... của 1 NV có mã chấm công [{1}]", m_thang.ToString("dd/MM/yyyy"), macc), maCC: macc);
            if (kq == 0)
            {
                MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi);
            }

            reloadGridDSThuChi();
        }
Esempio n. 30
0
        public static DataTable LayDSNVChuaSX(bool?UserEnabled)
        {
            var tableNV = DAO5.LayDSNV();
            var tableKQ = tableNV.Clone();

            foreach (DataRow dataRow in tableNV.Rows)
            {
                if (UserEnabled != null)                   // nếu có truyền trạng thái thì
                {
                    if (dataRow["UserEnabled"] == DBNull.Value || (bool)dataRow["UserEnabled"] != UserEnabled)
                    {
                        continue;
                    }
                }
                if (dataRow["MaPhong"] == DBNull.Value || (int)dataRow["MaPhong"] == 0)                   // chỉ lấy các nhân viên mới, ko lấy các nv khác
                {
                    tableKQ.ImportRow(dataRow);
                }
            }

            return(tableKQ);
        }