Esempio n. 1
0
        public object getConsolidateByType(DateTime startDate, DateTime endDate, string type)
        {
            List <OvCustomModel> result = new List <OvCustomModel>();
            var conn = db.Database.GetDbConnection();

            try
            {
                conn.Open();
                using (var command = conn.CreateCommand())
                {
                    string daterange = "";
                    if (!startDate.ToString().Equals("1/1/0001 12:00:00 AM") && !endDate.ToString().Equals("1/1/0001 12:00:00 AM"))
                    {
                        daterange = " and rq_start_time between '" + startDate + @"' and '" + endDate + @"' ";
                    }


                    string query = "";
                    if (type.Equals("Department"))
                    {
                        query = @"select rq_dep_id,d_description,
                            sum(CASE
                            WHEN   rq_status=[dbo].get_approved_priority(rq_workflow_id)  THEN
	                        ([dbo].[fn_GetTotalWorkingHours](rq_start_time, rq_end_time)-[dbo].[get_deduction_from_overtime](rq_id,rq_doc_id))
                            ELSE 0
                            END) approved,
                            sum(CASE
                                     WHEN   rq_status>=[dbo].get_approved_priority(rq_workflow_id)  THEN 0
                                    ELSE ([dbo].[fn_GetTotalWorkingHours](rq_start_time, rq_end_time)-[dbo].[get_deduction_from_overtime](rq_id,rq_doc_id))
                            END) unaproved,
                            sum(
						    [dbo].[fn_GetTotalWorkingHours](rq_start_time, rq_end_time)-[dbo].[get_deduction_from_overtime](rq_id,rq_doc_id)) hours
                            from OverTimeRequest
                            join Users on rq_cre_for = u_id
                            join Departments on rq_dep_id = d_id
                            where 1=1 " + daterange + @" and  rq_end_time is not null and rq_status!=0 
							group by rq_dep_id,d_description"                            ;
                    }
                    else
                    {
                        query = @"select rq_cre_for,u_name,u_full_name,
                            sum(CASE
                            WHEN   rq_status>=[dbo].get_approved_priority(rq_workflow_id)  THEN
	                        ([dbo].[fn_GetTotalWorkingHours](rq_start_time, rq_end_time)-[dbo].[get_deduction_from_overtime](rq_id,rq_doc_id))
                            ELSE 0
                            END) approved,
                            sum(CASE
                            WHEN  rq_status>=[dbo].get_approved_priority(rq_workflow_id)  THEN 0
                            ELSE ([dbo].[fn_GetTotalWorkingHours](rq_start_time, rq_end_time)-[dbo].[get_deduction_from_overtime](rq_id,rq_doc_id))
                            END) unaproved,
                            sum([dbo].[fn_GetTotalWorkingHours](rq_start_time, rq_end_time)-[dbo].[get_deduction_from_overtime](rq_id,rq_doc_id)) hours
                            from OverTimeRequest
                            join Users on rq_cre_for = u_id
                            join Departments on rq_dep_id = d_id
                            where 1=1 " + daterange + @" and rq_end_time is not null and rq_status!=0 
							group by rq_cre_for,u_name,u_full_name"                            ;
                    }



                    command.CommandText = query;
                    DbDataReader reader = command.ExecuteReader();

                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            OvCustomModel ovCustomModel = new OvCustomModel();
                            if (type.Equals("Department"))
                            {
                                ovCustomModel.emp_dep_id   = int.Parse(reader["rq_dep_id"].ToString());
                                ovCustomModel.emp_dep_name = reader["d_description"].ToString();
                            }
                            else
                            {
                                ovCustomModel.emp_id        = int.Parse(reader["rq_cre_for"].ToString());
                                ovCustomModel.emp_name      = reader["u_name"].ToString();
                                ovCustomModel.emp_full_name = reader["u_full_name"].ToString();
                            }


                            ovCustomModel.work_hours     = decimal.Parse(reader["approved"].ToString());
                            ovCustomModel.emp_unapproved = decimal.Parse(reader["unaproved"].ToString());
                            ovCustomModel.emp_total      = decimal.Parse(reader["hours"].ToString());

                            result.Add(ovCustomModel);
                        }
                    }
                    reader.Dispose();
                }
            }
            finally
            {
                conn.Close();
            }
            return(result);
        }
Esempio n. 2
0
        public IEnumerable <OvCustomModel> getConsolidatedAsync(int rq_dep_id, DateTime startDate, DateTime endDate, int rq_cre_for)
        {
            List <OvCustomModel> result = new List <OvCustomModel>();
            var conn = db.Database.GetDbConnection();

            try
            {
                conn.Open();
                using (var command = conn.CreateCommand())
                {
                    string query = @"select rq_cre_for,u_name,u_full_name,rq_dep_id,d_description,
                                     sum(CASE
                                     WHEN   rq_status>=[dbo].get_approved_priority(rq_workflow_id) THEN
                                     ([dbo].[fn_GetTotalWorkingHours](rq_start_time, rq_end_time)-[dbo].[get_deduction_from_overtime](rq_id,rq_doc_id))
                                     ELSE 0
                                     END) approved,
                                     sum(CASE
                                     WHEN   rq_status>=[dbo].get_approved_priority(rq_workflow_id)  THEN 0
                                     ELSE (([dbo].[fn_GetTotalWorkingHours](rq_start_time, rq_end_time)-[dbo].[get_deduction_from_overtime](rq_id,rq_doc_id)))
                                     END) unaproved,
                                     sum(
                                     [dbo].[fn_GetTotalWorkingHours](rq_start_time, rq_end_time)-[dbo].[get_deduction_from_overtime](rq_id,rq_doc_id)) hours
                                     from OverTimeRequest
                                     join Users on rq_cre_for = u_id
                                     join Departments on rq_dep_id = d_id
                                     where 1=1 and rq_end_time is not null and rq_status!=0 ";


                    if (!startDate.ToString().Equals("1/1/0001 12:00:00 AM") && !endDate.ToString().Equals("1/1/0001 12:00:00 AM"))
                    {
                        query += " and rq_start_time between '" + startDate + @"' and '" + endDate + @"' ";
                    }
                    if (rq_dep_id != 0)
                    {
                        query += " and rq_dep_id='" + rq_dep_id + @"'";
                    }
                    if (rq_cre_for != 0)
                    {
                        query += " and rq_cre_for='" + rq_cre_for + @"'";
                    }

                    query += " group by rq_cre_for,u_name,u_full_name,rq_dep_id,d_description";
                    System.Diagnostics.Debug.WriteLine(query);
                    command.CommandText = query;
                    DbDataReader reader = command.ExecuteReader();

                    if (reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            OvCustomModel ovCustomModel = new OvCustomModel();
                            ovCustomModel.emp_id         = reader.GetInt32(0);
                            ovCustomModel.emp_name       = reader.GetString(1);
                            ovCustomModel.emp_full_name  = reader.GetString(2);
                            ovCustomModel.emp_dep_id     = reader.GetInt32(3);
                            ovCustomModel.emp_dep_name   = reader.GetString(4);
                            ovCustomModel.work_hours     = reader.GetDecimal(5);
                            ovCustomModel.emp_unapproved = reader.GetDecimal(6);
                            ovCustomModel.emp_total      = reader.GetDecimal(7);

                            result.Add(ovCustomModel);
                        }
                    }
                    reader.Dispose();
                }
            }
            finally
            {
                conn.Close();
            }
            return(result);
        }