Пример #1
0
 /// <summary>
 /// 获取Column14 Code
 /// </summary>
 /// <param name="num"></param>
 /// <returns></returns>
 internal static string Code14(int num)
 {
     try {
         strSQL = string.Format("SELECT Code FROM ref_line14code WHERE id ='{0}'", num);
         return(SqlHelperIRS.ExecuteScalarToStr(CommandType.Text, strSQL));
     }
     catch (Exception) {
         throw;
     }
 }
Пример #2
0
 /// <summary>
 /// 根据Year获取Column15 Code
 /// </summary>
 /// <param name="year"></param>
 /// <returns></returns>
 internal static string Code15(int year)
 {
     try {
         strSQL = string.Format("SELECT Amount FROM ref_line15amount WHERE Year='{0}'", year);
         return(SqlHelperIRS.ExecuteScalarToStr(CommandType.Text, strSQL));
     }
     catch (Exception) {
         throw;
     }
 }
Пример #3
0
 internal static string Code15Date(int year)
 {
     try {
         strSQL = string.Format("SELECT Date FROM ref_line15amount WHERE Year ='{0}'", year);
         string   result        = SqlHelperIRS.ExecuteScalarToStr(CommandType.Text, strSQL);
         DateTime signatureDate = DateTime.MinValue;
         if (DateTime.TryParse(result, out signatureDate) && signatureDate > DateTime.MinValue)
         {
             return(signatureDate.ToString("MM/dd/yyyy"));
         }
     }
     catch (Exception) {
         throw;
     }
     return(string.Empty);
 }
Пример #4
0
        /// <summary>
        /// Q: Should be 2D, because the employee's TD is 1/9/2015 years, he worked in January. Right?
        /// A: You are correct.The employee worked in January.As a result, it cannot be 2A or 2D.  If there is no record on emp_helathbilling for January, it has to be left blank
        /// </summary>
        /// <param name="query"></param>
        /// <param name="employee"></param>
        /// <returns></returns>
        internal static bool TerminationBorder(List <HealthbillingKeyValue> query, IRSEmployee employee)
        {
            if (query.Count > 0)
            {
                var last = query.OrderByDescending(p => p.Month).Take(1).FirstOrDefault();
                if (last.Value > 0)
                {
                    //处理离职最后一个月
                    string start = employee.terminateDate.Month == last.Month
                        ? employee.terminateDate.ToString("MM/01/yyyy")
                        : string.Format("{0}/1/{1}", last.Month, employee.Year);
                    string end = employee.terminateDate.Month == last.Month
                        ? employee.terminateDate.ToShortDateString()
                        : DateTime.Parse(start).AddMonths(1).AddDays(-1).ToShortDateString();

                    strSQL = string.Format("SELECT COUNT(*) FROM emp_LeaveRecord WHERE EInfo_id={0} AND leaveType IN('SWOP','LWOP','SWP') AND leaveDate BETWEEN '{1}' AND '{2}' ",
                                           employee.EinfoID, start, end);
                    int result = SqlHelperIRS.ExecuteScalarToStr(CommandType.Text, strSQL).ToInt();
                    return(result == 0);
                }
            }
            return(false);
        }
Пример #5
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);
            }
        }