public Context(int year) { this.Input = new Dictionary <string, string>(); this.Inner = new Dictionary <string, string>(); this.Output = new Dictionary <string, string>(); Context.HealthbillingList = IRSQueryDB.loadHealthbilling(year); Code14 = IRSQueryDB.Code14(5); Code15 = IRSQueryDB.Code15(year); this.SetInner(IRSQueryDB.ALE1095CSoure()); }
private static void Init(int year) { if (!instance.ContainsKey(year)) { DateTime dtStart = new DateTime(year + 1, 1, 1).AddDays(-1); DateTime dtEnd = new DateTime(year, 1, 1); List <IRSEmployee> tmp = IRSQueryDB.loadAllEmployees(string.Empty, dtStart, dtEnd); if (year == 2015) { string[] queryTB = "4841".Split(','); tmp = tmp.Where(x => !queryTB.Contains(x.EinfoID.ToString())).ToList(); } instance.Add(year, tmp); } }
public override void handler14(Context context) { //var employeeList = base.EmployeeList.Where(p => p.EinfoID == base.Employee.EinfoID); var employeeList = base.EmployeeList; if (base.Employee.isRehire) { int reHire = 0; int end = 0; if (IRSQueryDB.getRehireEmployeeDate(base.Employee.EinfoID, base.Employee.Year.ToInt(), ref reHire, ref end)) { if (reHire == end) { context.SetInner("Text14", context.Code14); } else { var query = employeeList.Where(p => p.Month >= reHire).ToList(); if (query.Count() == 12) { context.SetInner("Text14", context.Code14); } else { foreach (var e in query) { context.SetInner(e.TextField14, context.Code14); } } //context.SetInner(query, context.SetInnerText14); //var query = employeeList.Where(p => p.Month <= end).ToList(); //if (reHire > 0) { // var query2 = base.EmployeeList.Where(p => p.Month >= reHire).ToList(); // context.SetInner(query2, context.SetInnerText14); //} //context.SetInner(query, context.SetInnerText14); } } } else { var query = employeeList.Where(p => p.Month < base.Employee._month).ToList(); var query1 = employeeList.Where(p => p.Month >= base.Employee._month).ToList(); context.SetInner(query1, context.SetInnerText14); } }
public override void handler15(Context context) { //var employeeList = base.EmployeeList.Where(p => p.EinfoID == base.Employee.EinfoID); var employeeList = base.EmployeeList; if (base.Employee.isRehire) { int reHire = 0; int end = 0; if (IRSQueryDB.getRehireEmployeeDate(base.Employee.EinfoID, base.Employee.Year.ToInt(), ref reHire, ref end)) { var query = employeeList.Where(p => p.Month <= end).ToList(); if (reHire > 0) { var query1 = employeeList.Where(p => p.Month >= reHire && p.Month < reHire + 3).ToList(); var query2 = employeeList.Where(p => p.Month >= reHire - 3 && p.Month < reHire).ToList(); var query3 = employeeList.Where(p => p.Month >= reHire + 3).ToList(); context.SetInner(query1, context.SetInnerText15Compare); context.SetInner(query3, context.SetInnerText15Compare); //foreach (var q in query1) { // dic.Add(q.TextField, q.Value > 0 ? _amount15 : "0"); // context.SetInner(q.) //} //foreach (var q in query2) { // var exitst = query.FirstOrDefault(p => p.Month == q.Month); // if (exitst == null) // dic.Add(q.TextField, "0"); //} //foreach (var q in query3) { // dic.Add(q.TextField, q.Value > 0 ? _amount15 : "0"); //} } context.SetInner(query, context.SetInnerText15Compare); //foreach (var q in query) { // var exitst = dic.FirstOrDefault(p => p.Key == q.TextField); // if (exitst.Key == null) // dic.Add(q.TextField, q.Value > 0 ? _amount15 : ""); //} } } else { var query = employeeList.Where(p => p.Month < base.Employee._month).ToList(); var query1 = employeeList.Where(p => p.Month >= base.Employee._month && p.Month < base.Employee._month + 3).ToList(); var query2 = employeeList.Where(p => p.Month >= base.Employee._month + 3).ToList(); //Dictionary<string, string> beforeDic = new Dictionary<string, string>(); //dic.ToList().ForEach(p => beforeDic.Add(p.Key, p.Value)); var query3 = employeeList.Where(p => p.Month >= base.Employee._month + 3).ToList(); context.SetInner(query3, context.SetInnerText15Compare); //C1095ContentByAlgorithm(employee.EinfoID, Year, "", _amount15, 15, _month + 2, "0", ref dic); //if (query.Union(query1).ToList().Count == 12 && beforeDic.Count == dic.Count) { // dic.Add("Text27", "0"); //} //else { // foreach (var q in query) { // dic.Add(q.TextField, "0"); // } // foreach (var q in query1) { // dic.Add(q.TextField, "0"); // } //} } }
public override void handler16(Context context) { //var employeeList = base.EmployeeList.Where(p => p.EinfoID == base.Employee.EinfoID); var employeeList = base.EmployeeList; if (base.Employee.isRehire) { int reHire = 0; int end = 0; if (IRSQueryDB.getRehireEmployeeDate(base.Employee.EinfoID, base.Employee.Year.ToInt(), ref reHire, ref end)) { var query = employeeList.Where(p => p.Month <= end).ToList(); if (reHire > 0) { //var query1 = month.Where(p => p.Key >= reHire && p.Key < _month + 3).ToList(); var query1 = employeeList.Where(p => p.Month >= reHire && p.Month <= reHire + 3).ToList(); var query2 = employeeList.Where(p => p.Month > reHire + 3).ToList(); //var query2 = obj.Where(p => p.Month >= reHire + 3 && p.Value > 0).ToList(); var query3 = employeeList.Except(query).Except(query1).Except(query2); var query4 = employeeList.Where(p => p.Month < base.Employee._month).ToList(); //var query4 = obj.Where(p => p.Month == reHire + 3).ToList(); foreach (var q in query1) { //dic.Add(q.TextField, q.Value > 0 ? "2C" : "2D"); context.SetInner(q.TextField16, q.Value > 0 ? "2C" : "2D"); } foreach (var q in query2) { //dic.Add(q.TextField, "2C"); context.SetInner(q.TextField16, q.Value > 0 ? "2C" : ""); } foreach (var q in query4) { context.SetInner(q.TextField16, "2A"); //dic.Add(q.TextField, "2A"); } //foreach (var q in query4) { // var exitst = dic.FirstOrDefault(p => p.Key == q.TextField).Key; // if (exitst == null && q.Month == _month + 3) // dic.Add(q.TextField, q.Value > 0 ? "2C" : "2D"); //} foreach (var q in query3) { var exitst = context.GetInner().FirstOrDefault(p => p.Key == q.TextField16).Key; if (exitst == null && q.Month < reHire + 3) { context.SetInner(q.TextField16, q.Value > 0 ? "2C" : "2A"); } //dic.Add(q.TextField, "2A"); } } foreach (var q in query) { var exitst = context.GetInner().FirstOrDefault(p => p.Key == q.TextField16).Key; if (exitst == null) { context.SetInner(q.TextField16, q.Value > 0 ? "2C" : ""); } //dic.Add(q.TextField, q.Value > 0 ? "2C" : ""); } } } else { var query = employeeList.Where(p => p.Month < base.Employee._month).ToList(); var query1 = employeeList.Where(p => p.Month >= base.Employee._month && p.Month < base.Employee._month + 3).ToList(); var query2 = employeeList.Where(p => p.Month > base.Employee._month + 2).ToList(); //var query = month.Where(p => p.Key < _month).ToList(); //var query1 = month.Where(p => p.Key >= _month && p.Key < _month + 3).ToList(); //C1095ContentByAlgorithm(employee.EinfoID, Year, "", "2C", 16, _month + 2, string.Empty, ref dic); foreach (var q in query) { context.SetInner(q.TextField16, "2A"); //dic.Add(q.TextField, "2A"); } foreach (var q in query1) { context.SetInner(q.TextField16, "2D"); //dic.Add(q.TextField, "2D"); } foreach (var q in query2) { /*For some New employees: The 4th month of Line 16 is currently blank depending on what day of the month they are hired.*/ if (q.Month == base.Employee._month + 3) { //dic.Add(q.TextField, q.Value > 0 ? "2C" : "2D"); context.SetInner(q.TextField16, q.Value > 0 ? "2C" : "2D"); } else { //dic.Add(q.TextField, q.Value > 0 ? "2C" : string.Empty); context.SetInner(q.TextField16, q.Value > 0 ? "2C" : string.Empty); } } } }
private static void Init(int Year) { if (Output == null) { Output = new Dictionary <string, string>(); Dictionary <string, string> input = new Dictionary <string, string>(); SetInner(IRSQueryDB.ALE1094CSoure()); input.Add("Check1", "false"); input.Add("Check2", "false"); DateTime dtStart = new DateTime(Year + 1, 1, 1).AddDays(-1); DateTime dtEnd = new DateTime(Year, 1, 1); /*Please double check your formula for calculating 1094C items 18 and 20 to make sure it captures/include all employees in active status for at least one day of the selected year (e.g. 2015).*/ var employees = DBSourceFactory.GetDBSource(Year); string sigDate = IRSQueryDB.Code15Date(Year); if (!string.IsNullOrEmpty(sigDate)) { input.Add("Text21", sigDate); } input.Add("Text17", employees.Count.ToString()); input.Add("Check3", "true"); input.Add("Check4", "false"); input.Add("Text18", employees.Count.ToString()); input.Add("Check5", "true"); input.Add("Check9", "true");//计算B列 input.Add("Check10", "true"); /*如果当前月为7月,则往前推一年再+1个月, 再-1天可以得到2014/7/1 - 2014/7/31 */ //DateTime startDate = new DateTime(DateTime.Now.AddYears(-1).Year, DateTime.Now.AddYears(-1).Month + 1, 1); //DateTime endDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); //DateTime startDate = new DateTime() DateTime dtTemp = dtEnd; int hire = 0; //int terminate = 0; Dictionary <int, int> ColumnB = new Dictionary <int, int>(); Dictionary <int, int> ColumnC = new Dictionary <int, int>(); while (dtTemp <= dtStart) { /*Calculate total number of Regular Full Time”, “Regular Part Time” and “Part Time 30 HRs for each month of the selected Year and enter values*/ string strSQL = string.Format("SELECT count(*) FROM Employment_Info WHERE employee_type IN ('001','002','003') AND date_entry_to_agency < '{0}' AND employment_status=1", dtTemp); hire = int.Parse(SqlHelperIRS.ExecuteScalarToStr(System.Data.CommandType.Text, strSQL)); ColumnB.Add(dtTemp.Month, hire); /*Count ALL Employees including those terminated for the selected year. (count Regular Full Time”, “Regular Part Time” , “Part Time 30 HRs, Part time 20 hrs and substitutes)*/ //strSQL = string.Format("SELECT count(*) FROM (SELECT DISTINCT Employee_ID FROM Employment_Info WHERE date_terminate_from_agency BETWEEN '{0}' AND '{1}' )A", dtTemp.AddMonths(-1), dtTemp.AddDays(-1)); //terminate = int.Parse(SqlHelper.ExecuteScalarToStr(CommandType.Text, strSQL)); //ColumnC.Add(dtTemp.Month, terminate); var tmp = IRSQueryDB.loadAllEmployees("", dtTemp.AddMonths(1).AddDays(-1), dtTemp, EnumIRSTotalNumber.ColumnC); ColumnC.Add(dtTemp.Month, tmp.Count); dtTemp = dtTemp.AddMonths(1); } /*Since box D is checked on line 22: it is not required to complete column (b). Please remove your calculations for column B.*/ var cb = input.FirstOrDefault(p => p.Key == "Check9" && p.Value == "true").Value; if (string.IsNullOrEmpty(cb)) { //Column B input.Add("Text25", ColumnB.FirstOrDefault(p => p.Key == 1).Value.ToString()); input.Add("Text28", ColumnB.FirstOrDefault(p => p.Key == 2).Value.ToString()); input.Add("Text31", ColumnB.FirstOrDefault(p => p.Key == 3).Value.ToString()); input.Add("Text34", ColumnB.FirstOrDefault(p => p.Key == 4).Value.ToString()); input.Add("Text37", ColumnB.FirstOrDefault(p => p.Key == 5).Value.ToString()); input.Add("Text40", ColumnB.FirstOrDefault(p => p.Key == 6).Value.ToString()); input.Add("Text43", ColumnB.FirstOrDefault(p => p.Key == 7).Value.ToString()); input.Add("Text46", ColumnB.FirstOrDefault(p => p.Key == 8).Value.ToString()); input.Add("Text49", ColumnB.FirstOrDefault(p => p.Key == 9).Value.ToString()); input.Add("Text52", ColumnB.FirstOrDefault(p => p.Key == 10).Value.ToString()); input.Add("Text55", ColumnB.FirstOrDefault(p => p.Key == 11).Value.ToString()); input.Add("Text58", ColumnB.FirstOrDefault(p => p.Key == 12).Value.ToString()); } //Column C input.Add("Text26", ColumnC.FirstOrDefault(p => p.Key == 1).Value.ToString()); input.Add("Text29", ColumnC.FirstOrDefault(p => p.Key == 2).Value.ToString()); input.Add("Text32", ColumnC.FirstOrDefault(p => p.Key == 3).Value.ToString()); input.Add("Text35", ColumnC.FirstOrDefault(p => p.Key == 4).Value.ToString()); input.Add("Text38", ColumnC.FirstOrDefault(p => p.Key == 5).Value.ToString()); input.Add("Text41", ColumnC.FirstOrDefault(p => p.Key == 6).Value.ToString()); input.Add("Text44", ColumnC.FirstOrDefault(p => p.Key == 7).Value.ToString()); input.Add("Text47", ColumnC.FirstOrDefault(p => p.Key == 8).Value.ToString()); input.Add("Text50", ColumnC.FirstOrDefault(p => p.Key == 9).Value.ToString()); input.Add("Text53", ColumnC.FirstOrDefault(p => p.Key == 10).Value.ToString()); input.Add("Text56", ColumnC.FirstOrDefault(p => p.Key == 11).Value.ToString()); input.Add("Text59", ColumnC.FirstOrDefault(p => p.Key == 12).Value.ToString()); SetInner(input); } }
public override void handler16(Context context) { //var _month = base.Employee.HireDate.Year == base.Employee.terminateDate.Year ? _month : 0; var _month = base.Employee._month; //var obj = fillTextFieldBindingValue(employee.EinfoID, Year, 41, 52); //var employeeList = context.HealthbillingList.Where(p => p.EinfoID == base.Employee.EinfoID); var employeeList = base.EmployeeList; var query = employeeList.Where(p => p.Month >= _month && p.Month <= base.Employee.terMonth).ToList(); var query1 = employeeList.Where(p => p.Month > base.Employee.terMonth).ToList(); var query2 = employeeList.Where(p => p.Month >= _month && p.Month <= _month + 3).ToList(); var query3 = employeeList.Where(p => p.Month < _month).ToList(); var queryValGreaterZroe = query.Where(p => p.Value > 0); if (queryValGreaterZroe.Count() == 12) { ///需修复 //var hasValue = query.Sum(p => p.Value); context.SetInner("Text40", Code16.C2.GetDescription()); } //dic.Add("Text40", hasValue > 0 ? "2C" : "2D"); } else { var lastValue = query.OrderByDescending(p => p.Month).Take(1).FirstOrDefault(); if (_month != 0) { foreach (var q in query2) { //Employee cannot be 2D after termination month. context.SetInner(q.TextField16, q.Month <= base.Employee.terMonth ? (q.Value > 0 ? "2C" : "2D") : "2A"); } foreach (var q in query) { if (lastValue != null && lastValue.Month != q.Month) { context.SetInner(q.TextField16, q.Value > 0 ? "2C" : ""); } else if (IRSQueryDB.TerminationBorder(query, base.Employee)) { context.SetInner(q.TextField16, q.Value > 0 ? "2C" : "2D"); } /* * 5803: TD:10/6/2015 * October cannot be 1E and 2A at the same month. 2A should be blank for October */ //else if (base.Employee.terThisYear) { // context.SetInner(q.TextField16, "2A"); //} } //foreach (var q in query2) { // if (lastValue!=null && lastValue.Month != q.Month) { // context.SetInner(q.TextField16, q.Value > 0 ? "2C" : "2D"); // //dic.Add(q.TextField, q.Value > 0 ? "2C" : "2D"); // } // else if (IRSQueryDB.TerminationBorder(query, base.Employee)) { // context.SetInner(q.TextField16, q.Value > 0 ? "2C" : "2D"); // //dic.Add(q.TextField, q.Value > 0 ? "2C" : "2D"); // } //} } //context.SetInner(query, context.SetInnerText16Compare); context.SetInner(query1, context.SetInnerText16A2); context.SetInner(query3, context.SetInnerText16A2); } }