コード例 #1
0
        public static void ThongKeThang(ref ThongKeCong_PC thongKeThang, List <cNgayCong> dsNgayCong,
                                        DateTime ngayBDCongnhat, DateTime ngayKTCongnhat, LoaiCongNhat nvChinhThuc)
        {
            if (nvChinhThuc == LoaiCongNhat.NVCongNhat)             // chỉ làm công nhật, chỉ tính công công nhật trong khoảng gian từ bắt đầu đến kết thúc
            {
                thongKeThang.Cong_Congnhat = (dsNgayCong
                                              .Where(item => item.Ngay >= ngayBDCongnhat && item.Ngay <= ngayKTCongnhat)
                                              .Sum(item => item.TongCong));
            }
            else             //2 trường hợp, chính thức và vừa chính thức vừa công nhật
            {
                // trường hợp chỉ làm chính thức
                if (nvChinhThuc == LoaiCongNhat.NVChinhThuc)
                {
                    foreach (var ngayCong in dsNgayCong)
                    {
                        XL.ThongKeNgay(ref thongKeThang, ngayCong);
                    }
                }
                else                 // vừa làm công nhật vừa làm chính thức
                {
                    thongKeThang.Cong_Congnhat = (dsNgayCong
                                                  .Where(item => item.Ngay >= ngayBDCongnhat && item.Ngay <= ngayKTCongnhat)
                                                  .Sum(item => item.TongCong));

                    foreach (var ngayCong in dsNgayCong.Where(item => item.Ngay <ngayBDCongnhat || item.Ngay> ngayKTCongnhat))
                    {
                        XL.ThongKeNgay(ref thongKeThang, ngayCong);
                    }
                }
            }
        }
コード例 #2
0
        public static void ThongKeThang(ref ThongKeCong_PC thongKeThang, List <cNgayCong> dsNgayCong,
                                        DateTime ngayBDCongnhat, DateTime ngayKTCongnhat, LoaiCongNhat nvChinhThuc,
                                        out int SoNgayChamCongx2, out int SoNgayNghiAnhHuongCongx2)//v4.0.0.9
        {
            SoNgayChamCongx2         = 0;
            SoNgayNghiAnhHuongCongx2 = 0;
            if (nvChinhThuc == LoaiCongNhat.NVCongNhat)             // chỉ làm công nhật, chỉ tính công công nhật trong khoảng gian từ bắt đầu đến kết thúc
            {
                thongKeThang.Cong_Congnhat = (dsNgayCong
                                              .Where(item => item.Ngay >= ngayBDCongnhat && item.Ngay <= ngayKTCongnhat)
                                              .Sum(item => item.TongCong_4008));
            }
            else             //2 trường hợp, chính thức và vừa chính thức vừa công nhật
            {
                // trường hợp chỉ làm chính thức
                if (nvChinhThuc == LoaiCongNhat.NVChinhThuc)
                {
                    foreach (var ngayCong in dsNgayCong)
                    {
                        bool LaNgayChamCongx2, LaNgayNghiAnhHuongCongx2;
                        XL.ThongKeNgay(ref thongKeThang, ngayCong, out LaNgayChamCongx2, out LaNgayNghiAnhHuongCongx2);
                        SoNgayChamCongx2         += (LaNgayChamCongx2) ? 1 : 0;
                        SoNgayNghiAnhHuongCongx2 += (LaNgayNghiAnhHuongCongx2) ? 1 : 0;
                    }
                }
                else                 // vừa làm công nhật vừa làm chính thức
                {
                    thongKeThang.Cong_Congnhat = (dsNgayCong
                                                  .Where(item => item.Ngay >= ngayBDCongnhat && item.Ngay <= ngayKTCongnhat)
                                                  .Sum(item => item.TongCong_4008));
                    bool LaNgayChamCongx2, LaNgayNghiAnhHuongCongx2;
                    foreach (var ngayCong in dsNgayCong.Where(item => item.Ngay <ngayBDCongnhat || item.Ngay> ngayKTCongnhat))
                    {
                        XL.ThongKeNgay(ref thongKeThang, ngayCong, out LaNgayChamCongx2, out LaNgayNghiAnhHuongCongx2);
                    }
                }
                #region 4.0.0.8 xét lại bù giờ

                var tempTongCongTreSomBu      = (thongKeThang.TongTruCongTreBu + thongKeThang.TongTruCongSomBu);
                var tempTongCongTreSom_KoDuBu = 0f;
                if (thongKeThang.TongCongTichLuy >= tempTongCongTreSomBu)
                {
                    thongKeThang.TreSom_KoDuBuCong = 0f;
                    thongKeThang.TreSom_DuocBuCong = tempTongCongTreSomBu;
                    thongKeThang.TichLuy_PhanDu    = thongKeThang.TongCongTichLuy - thongKeThang.TreSom_DuocBuCong;
                }
                else
                {
                    thongKeThang.TreSom_DuocBuCong = thongKeThang.TongCongTichLuy;                    //tempTongCongBu - thongKeThang.TongCongTichLuy;
                    thongKeThang.TichLuy_PhanDu    = 0f;
                    thongKeThang.TreSom_KoDuBuCong = tempTongCongTreSomBu - thongKeThang.TongCongTichLuy;
                }
                thongKeThang.TongNgayLV4008 = thongKeThang.TongCongDinhMuc8Tieng + thongKeThang.TichLuy_PhanDu + thongKeThang.TreSom_DuocBuCong;
                //thongKeThang.TongNgayLV4008 += tempTongCongTreSom_KoDuBu; // phần ko đủ giờ bù là phần việc riêng
                //thongKeThang.TongNgayLV4008 += thongKeThang.TongTruCongTreVR + thongKeThang.TongTruCongSomVR;// cộng thêm phần trễ sớm việc riêng

                #endregion
            }
        }
コード例 #3
0
        private static void ThongKeNgay(ref ThongKeCong_PC thongKeThang, cNgayCong ngayCong)
        {
            thongKeThang.Cong                    += ngayCong.TongCong;
            thongKeThang.TongNgayLV              += ngayCong.TongNgayLV;//ver4.0.0.1
            thongKeThang.PhuCaps._TongPC         += ngayCong.PhuCaps._TongPC;
            thongKeThang.PhuCaps._30_dem         += ngayCong.PhuCaps._30_dem;
            thongKeThang.PhuCaps._50_TC          += ngayCong.PhuCaps._50_TC;
            thongKeThang.PhuCaps._100_TCC3       += ngayCong.PhuCaps._100_TCC3;
            thongKeThang.PhuCaps._100_LVNN_Ngay  += ngayCong.PhuCaps._100_LVNN_Ngay;
            thongKeThang.PhuCaps._150_LVNN_Dem   += ngayCong.PhuCaps._150_LVNN_Dem;
            thongKeThang.PhuCaps._200_LeTet_Ngay += ngayCong.PhuCaps._200_LeTet_Ngay;
            thongKeThang.PhuCaps._250_LeTet_Dem  += ngayCong.PhuCaps._250_LeTet_Dem;
            thongKeThang.PhuCaps._Cus            += ngayCong.PhuCaps._Cus;
            thongKeThang.NgayQuaDem              += (ngayCong.QuaDem) ? 1 : 0;
            foreach (var xpVang in ngayCong.DSVang)
            {
                var WorkingDay = xpVang.WorkingDay;
                switch (xpVang.MaLV_Code)
                {
                case "L":
                    thongKeThang.Le = thongKeThang.Le + WorkingDay;
                    break;

                case "P":
                    thongKeThang.Phep = thongKeThang.Phep + WorkingDay;
                    break;

                case "CV":
                    thongKeThang.CongCV_KB = thongKeThang.CongCV_KB + WorkingDay;                             // tính trước công chờ việc khai báo, tính công chờ việc tự động sau
                    break;

                case "BH":
                case "TS":
                case "BD":                         //info new version
                    thongKeThang.BHXH = thongKeThang.BHXH + WorkingDay;
                    break;

                case "H":
                case "CT":
                case "PT":
                    thongKeThang.H_CT_PT = thongKeThang.H_CT_PT + WorkingDay;
                    break;

                case "PD":
                    thongKeThang.PTDT = thongKeThang.PTDT + WorkingDay;                            //DANGLAM
                    break;

                case "RO":
                    thongKeThang.NghiRo = thongKeThang.NghiRo + WorkingDay;
                    break;
                }
            }
        }
コード例 #4
0
        public static void ThongKeNgay(ref ThongKeCong_PC thongKeThang, cNgayCong ngayCong,
                                       out bool LaNgayChamCongx2, out bool LaNgayNghiAnhHuongCongx2 //v4.0.0.9
                                       )
        {
            LaNgayChamCongx2         = false;
            LaNgayNghiAnhHuongCongx2 = false;
            bool flag1 = true;
            bool flag2 = true;

            //thongKeThang.Cong += ngayCong.TongCong;
            //thongKeThang.TongNgayLV += ngayCong.TongNgayLV;//ver4.0.0.1

            #region             // tính chiếm công CV

            thongKeThang.Cong += ngayCong.TongCong_4008;
            thongKeThang.TongCongDinhMuc8Tieng += ngayCong.CongDinhMucDuoi8Tieng;
            thongKeThang.TongCongTichLuy       += ngayCong.CongTichLuy;
            thongKeThang.TongTruCongTreBu      += ngayCong.TruCongTreBu;
            thongKeThang.TongTruCongSomBu      += ngayCong.TruCongSomBu;
            thongKeThang.TongTruCongTreVR      += ngayCong.TruCongTreVR;
            thongKeThang.TongTruCongSomVR      += ngayCong.TruCongSomVR;
            #endregion

            thongKeThang.PhuCaps._TongPC        += ngayCong.PhuCaps._TongPC;
            thongKeThang.PhuCaps._30_dem        += ngayCong.PhuCaps._30_dem;
            thongKeThang.PhuCaps._50_TC         += ngayCong.PhuCaps._50_TC;
            thongKeThang.PhuCaps._100_TCC3      += ngayCong.PhuCaps._100_TCC3;
            thongKeThang.PhuCaps._100_LVNN_Ngay += ngayCong.PhuCaps._100_LVNN_Ngay;
            thongKeThang.PhuCaps._150_LVNN_Dem  += ngayCong.PhuCaps._150_LVNN_Dem;
            //v4.0.0.9------------------
            if (ngayCong.PhuCaps._100_LVNN_Ngay > 0f || ngayCong.PhuCaps._150_LVNN_Dem > 0f)
            {
                LaNgayChamCongx2 = true;
            }
            if (Math.Abs(ngayCong.TongCong_4008 - 0f) > 0.0005f)
            {
                flag1 = false;
            }
            //--------------------------
            thongKeThang.PhuCaps._200_LeTet_Ngay += ngayCong.PhuCaps._200_LeTet_Ngay;
            thongKeThang.PhuCaps._250_LeTet_Dem  += ngayCong.PhuCaps._250_LeTet_Dem;
            thongKeThang.PhuCaps._Cus            += ngayCong.PhuCaps._Cus;  //phụ cấp vắng
            thongKeThang.NgayQuaDem += (ngayCong.QuaDem) ? 1 : 0;
            var tempRo = 0f;
            foreach (var xpVang in ngayCong.DSVang)
            {
                var WorkingDay = xpVang.WorkingDay;
                switch (xpVang.MaLV_Code)
                {
                case "L":
                    thongKeThang.Le = thongKeThang.Le + WorkingDay;
                    flag2           = false;                  //v4.0.0.9
                    break;

                case "P":
                    thongKeThang.Phep = thongKeThang.Phep + WorkingDay; // phần phép bù sẽ cập nhật lại ở bên dưới cùng
                    flag2             = false;                          //v4.0.0.9
                    break;

                case "CV":
                    thongKeThang.CongCV_KB = thongKeThang.CongCV_KB + WorkingDay; // tính trước công chờ việc khai báo, tính công chờ việc tự động sau
                    flag2 = false;                                                //v4.0.0.9
                    break;

                case "BH":
                case "TS":
                case "BD":                         //info new version
                    thongKeThang.BHXH = thongKeThang.BHXH + WorkingDay;
                    flag2             = false;     //v4.0.0.9
                    break;

                case "H":
                case "CT":
                case "PT":
                    thongKeThang.H_CT_PT = thongKeThang.H_CT_PT + WorkingDay;
                    flag2 = false;                            //v4.0.0.9
                    break;

                case "PD":
                    thongKeThang.PTDT = thongKeThang.PTDT + WorkingDay; //DANGLAM
                    flag2             = false;                          //v4.0.0.9
                    break;

                case "RO":
                    tempRo += WorkingDay;
                    thongKeThang.NghiRo = thongKeThang.NghiRo + tempRo;
                    break;
                }
            }
            if (flag1 && flag2)
            {
                LaNgayNghiAnhHuongCongx2 = true;                            //v4.0.0.9
            }
            thongKeThang.Phep += ngayCong.CongBuPhepTre;
            thongKeThang.Phep += ngayCong.CongBuPhepSom;
            var tempSoNgayNghiRO_NguyenNgay = 0;
            if (Math.Abs(tempRo - 1f) < 0.05f)
            {
                tempSoNgayNghiRO_NguyenNgay = 1;
            }
            else if (Math.Abs(tempRo - 2f) < 0.05f)
            {
                tempSoNgayNghiRO_NguyenNgay = 2;
            }
            thongKeThang.SoNgayNghiRO_NguyenNgay += tempSoNgayNghiRO_NguyenNgay;
        }