Ejemplo n.º 1
0
 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());
 }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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");
                //    }
                //}
            }
        }
Ejemplo n.º 5
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);
                    }
                }
            }
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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);
            }
        }