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); } } } }
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 } }
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; } } }
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; }