示例#1
0
        public List <DateWiseData> getDatewiseRecord(getEmployeewiseRecord obj)
        {
            DateTime forDate = obj.fromdate;

            Debug.WriteLine("For date :" + forDate.ToString());
            Debug.WriteLine("From  date :" + obj.fromdate.ToString());

            while (forDate <= obj.todate)
            {
                DateWiseData datewisedata = new DateWiseData();

                datewisedata._Date = forDate.ToString("yyyy-MM-dd");//Date

                List <DateData> listDateData = new List <DateData>();

                for (int i = 0; i < obj.uid.Count; i++)
                {
                    DateData dateData = new DateData();

                    //first in time and out time
                    string q1 = "select * from in_out where uid='" + obj.uid[i].ToString() + "' and _date = '" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "';";
                    string q2 = "select count(*) from in_out where uid='" + obj.uid[i].ToString() + "' and _date = '" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "';";
                    conn.Open();
                    MySqlCommand cmd2 = new MySqlCommand(q2, conn);
                    Int32        c    = Convert.ToInt32(cmd2.ExecuteScalar());
                    conn.Close();
                    Debug.WriteLine("Count :" + c);

                    if (c > 0)
                    {
                        Debug.WriteLine("For date individual :" + forDate.ToString("dd-MMM-yyyy"));

                        dateData._date   = forDate.ToString("dd-MMM-yyyy"); //date
                        dateData.uid     = obj.uid[i].ToString();           //uid
                        dateData.weekday = forDate.DayOfWeek.ToString();    //weekday

                        string          q0   = "select fname,lname from nworksuser where uid='" + obj.uid[i].ToString() + "';";
                        MySqlCommand    cmd0 = new MySqlCommand(q0, conn);
                        MySqlDataReader rdr0;
                        conn.Open();
                        rdr0 = cmd0.ExecuteReader();
                        while (rdr0.Read())
                        {
                            dateData.employeeName = rdr0.GetString("fname") + " " + rdr0.GetString("lname");//Employee name
                        }
                        conn.Close();

                        string          q3 = "select * from in_out where _date='" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "' and uid='" + obj.uid[i].ToString() + "' and inTime!='00:00:00' order by inout_id asc limit 1";              //get in time
                        string          query3 = "select count(*) from in_out where _date='" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "' and uid='" + obj.uid[i].ToString() + "' and inTime!='00:00:00' order by inout_id asc limit 1";   //get in time
                        string          q4 = "select * from in_out where _date='" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "' and uid='" + obj.uid[i].ToString() + "' and outTime!='00:00:00' order by inout_id desc limit 1";            //get out time
                        string          query4 = "select count(*) from in_out where _date='" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "' and uid='" + obj.uid[i].ToString() + "' and outTime!='00:00:00' order by inout_id desc limit 1"; //get out time
                        MySqlCommand    cmd3 = new MySqlCommand(q3, conn);
                        MySqlCommand    command3 = new MySqlCommand(query3, conn);
                        MySqlCommand    cmd4 = new MySqlCommand(q4, conn);
                        MySqlCommand    command4 = new MySqlCommand(query4, conn);
                        MySqlDataReader rdr3, rdr4;

                        conn.Open();
                        Int32 inCount = Convert.ToInt32(command3.ExecuteScalar());
                        conn.Close();
                        conn.Open();
                        Int32 outCount = Convert.ToInt32(command4.ExecuteScalar());
                        conn.Close();

                        if (inCount != 0)
                        {
                            conn.Open();
                            rdr3 = cmd3.ExecuteReader();
                            string firstIn = "";
                            while (rdr3.Read())
                            {
                                firstIn = rdr3.GetString("inTime").Substring(10, 8);       //fin time
                            }
                            Debug.WriteLine("Fin :" + firstIn);
                            dateData.fin = getConvert(firstIn);
                            conn.Close();
                        }

                        if (outCount != 0)
                        {
                            conn.Open();
                            rdr4 = cmd4.ExecuteReader();
                            string firstOut = "";
                            while (rdr4.Read())
                            {
                                firstOut = rdr4.GetString("outTime").Substring(10, 8);     //fout time
                            }
                            dateData.fout = getConvert(firstOut);
                            conn.Close();
                        }

                        //total in time
                        string       q5   = "select distinct inTime from in_out where inTime != '00:00:00' and uid='" + obj.uid[i].ToString() + "' and _date='" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "';";
                        string       q6   = "select distinct outTime from in_out where outTime != '00:00:00' and uid='" + obj.uid[i].ToString() + "' and _date='" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "';";
                        MySqlCommand cmd5 = new MySqlCommand(q5, conn);
                        MySqlCommand cmd6 = new MySqlCommand(q6, conn);

                        List <string> inT  = new List <string>();
                        List <string> outT = new List <string>();

                        MySqlDataReader rdr5;
                        MySqlDataReader rdr6;

                        conn.Open();
                        rdr5 = cmd5.ExecuteReader();
                        while (rdr5.Read())
                        {
                            inT.Add((rdr5.GetString("inTime").Substring(10, 8)));
                        }
                        conn.Close();

                        conn.Open();
                        rdr6 = cmd6.ExecuteReader();
                        while (rdr6.Read())
                        {
                            outT.Add((rdr6.GetString("outTime").Substring(10, 8)));
                        }
                        conn.Close();

                        int count = inT.Count - outT.Count;
                        Debug.WriteLine("in time count : " + inT.Count.ToString());
                        Debug.WriteLine("out time count : " + outT.Count.ToString());


                        TimeSpan TotalTime = TimeSpan.FromSeconds(1);
                        if (count == -1 || count == 0)
                        {
                            int cnt = inT.Count;
                            for (int k = 0; k < cnt; k++)
                            {
                                TimeSpan span     = TimeSpan.Parse(outT[k]) - TimeSpan.Parse(inT[k]);
                                TimeSpan duration = span.Duration();
                                TotalTime = TotalTime + duration;
                            }
                        }
                        else if (count == 1)
                        {
                            //need to improve this code
                            int cnt = outT.Count;
                            for (int k = 0; k < cnt; k++)
                            {
                                TimeSpan span     = TimeSpan.Parse(outT[k]) - TimeSpan.Parse(inT[k]);
                                TimeSpan duration = span.Duration();
                                TotalTime = TotalTime + duration;
                            }
                        }
                        dateData.totalInTime = TotalTime.ToString();        //total time


                        string myQuery = "select * from in_out where _date='" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "' and uid='" + obj.uid[i].ToString() + "';";
                        conn.Open();
                        MySqlCommand    myCommand1 = new MySqlCommand(myQuery, conn);
                        MySqlDataReader myRdr1     = myCommand1.ExecuteReader();


                        while (myRdr1.Read())
                        {
                            if (myRdr1.GetFloat("DistanceFromOrigin") > 100.000 || myRdr1.GetInt16("IsDeviceChanged") == 1)
                            {
                                Debug.WriteLine(myRdr1.GetFloat("DistanceFromOrigin").ToString());
                                dateData.Is_Loc_Device_Changed = "Red";
                            }
                            else
                            {
                                dateData.Is_Loc_Device_Changed = "White";
                            }
                        }
                        conn.Close();
                        listDateData.Add(dateData);
                    }
                }

                datewisedata.dateData = listDateData;

                MainData.Add(datewisedata);

                forDate = forDate.AddDays(1);
            }

            return(MainData);
        }
示例#2
0
        public List <EmployeeWiseData> getEmployeewiseDetails(getEmployeewiseRecord obj)
        {
            for (int i = 0; i < obj.uid.Count; i++)
            {
                DateTime forDate = obj.fromdate;

                List <EmployeeData> ListOfEmployeeData = new List <EmployeeData>();

                EmployeeWiseData mainObject = new EmployeeWiseData();

                string q0 = "select fname,lname from nworksuser where uid='" + obj.uid[i].ToString() + "';";

                MySqlCommand cmd0 = new MySqlCommand(q0, conn);

                conn.Open();

                MySqlDataReader rdr0 = cmd0.ExecuteReader();

                while (rdr0.Read())
                {
                    mainObject.EmployeeName = rdr0.GetString("fname") + " " + rdr0.GetString("lname");//Employee name
                }
                conn.Close();

                while (forDate <= obj.todate)
                {
                    EmployeeData objEmployeeData = new EmployeeData();

                    Debug.WriteLine("For date : " + forDate.ToString("yyyy-MM-dd"));

                    string q  = "select * from in_out where uid='" + obj.uid[i].ToString() + "' and _date = '" + forDate.ToString("yyyy-MM-dd") + "';";
                    string q1 = "select count(*) from in_out where uid='" + obj.uid[i].ToString() + "' and _date = '" + forDate.ToString("yyyy-MM-dd") + "';";
                    conn.Open();
                    MySqlCommand cmd1 = new MySqlCommand(q1, conn);
                    Int32        c    = Convert.ToInt32(cmd1.ExecuteScalar());
                    Debug.WriteLine("Count :" + c);

                    if (c > 0)
                    {
                        conn.Close();
                        objEmployeeData.date    = forDate.ToString("dd-MMM-yyyy");                                                                                                                                                           //date
                        objEmployeeData.weekday = forDate.DayOfWeek.ToString();                                                                                                                                                              //weekday
                        objEmployeeData.uid     = obj.uid[i].ToString();                                                                                                                                                                     //uid
                        string          q2 = "select * from in_out where _date='" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "' and uid='" + obj.uid[i].ToString() + "' and inTime!='00:00:00' order by inout_id asc limit 1";              //get in time
                        string          query2 = "select count(*) from in_out where _date='" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "' and uid='" + obj.uid[i].ToString() + "' and inTime!='00:00:00' order by inout_id asc limit 1";   //get in time
                        string          q3 = "select * from in_out where _date='" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "' and uid='" + obj.uid[i].ToString() + "' and outTime!='00:00:00' order by inout_id desc limit 1";            //get out time
                        string          query3 = "select count(*) from in_out where _date='" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "' and uid='" + obj.uid[i].ToString() + "' and outTime!='00:00:00' order by inout_id desc limit 1"; //get out time
                        MySqlCommand    cmd2 = new MySqlCommand(q2, conn);
                        MySqlCommand    command2 = new MySqlCommand(query2, conn);
                        MySqlCommand    cmd3 = new MySqlCommand(q3, conn);
                        MySqlCommand    command3 = new MySqlCommand(query3, conn);
                        MySqlDataReader rdr2, rdr3;

                        conn.Open();
                        Int32 inCount = Convert.ToInt32(command2.ExecuteScalar());
                        conn.Close();
                        conn.Open();
                        Int32 outCount = Convert.ToInt32(command3.ExecuteScalar());
                        conn.Close();


                        if (inCount != 0)
                        {
                            conn.Open();
                            rdr2 = cmd2.ExecuteReader();
                            string firstIn = "";

                            while (rdr2.Read())
                            {
                                firstIn = rdr2.GetString("inTime").Substring(10, 8);        //fin time
                            }
                            Debug.WriteLine("........>intime" + firstIn);
                            objEmployeeData.In = getConvert(firstIn);
                            conn.Close();
                        }

                        if (outCount != 0)
                        {
                            conn.Open();
                            rdr3 = cmd3.ExecuteReader();
                            string lastOut = "";
                            while (rdr3.Read())
                            {
                                lastOut = rdr3.GetString("outTime").Substring(10, 8);      //Lout time
                            }
                            objEmployeeData.Out = getConvert(lastOut);
                            conn.Close();
                        }


                        //getting total time
                        string       q4   = "select inTime from in_out where inTime != '00:00:00' and uid='" + obj.uid[i].ToString() + "' and _date='" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "';";
                        string       q5   = "select outTime from in_out where outTime != '00:00:00' and uid='" + obj.uid[i].ToString() + "' and _date='" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "';";
                        MySqlCommand cmd4 = new MySqlCommand(q4, conn);
                        MySqlCommand cmd5 = new MySqlCommand(q5, conn);

                        List <string> inT  = new List <string>();
                        List <string> outT = new List <string>();

                        MySqlDataReader rdr4;
                        MySqlDataReader rdr5;

                        conn.Open();
                        rdr4 = cmd4.ExecuteReader();
                        while (rdr4.Read())
                        {
                            inT.Add((rdr4.GetString("inTime").Substring(10, 8)));
                        }
                        conn.Close();

                        conn.Open();
                        rdr5 = cmd5.ExecuteReader();
                        while (rdr5.Read())
                        {
                            outT.Add((rdr5.GetString("outTime").Substring(10, 8)));
                        }
                        conn.Close();

                        int count = inT.Count - outT.Count;
                        Debug.WriteLine("in time count : " + inT.Count.ToString());
                        Debug.WriteLine("out time count : " + outT.Count.ToString());


                        TimeSpan TotalTime = TimeSpan.FromSeconds(1);
                        if (count == -1 || count == 0)
                        {
                            int cnt = inT.Count;
                            for (int k = 0; k < cnt; k++)
                            {
                                TimeSpan span     = TimeSpan.Parse(outT[k]) - TimeSpan.Parse(inT[k]);
                                TimeSpan duration = span.Duration();
                                TotalTime = TotalTime + duration;
                            }
                        }
                        else if (count == 1)
                        {
                            //need to improve this code
                            int cnt = outT.Count;
                            for (int k = 0; k < cnt; k++)
                            {
                                TimeSpan span     = TimeSpan.Parse(outT[k]) - TimeSpan.Parse(inT[k]);
                                TimeSpan duration = span.Duration();
                                TotalTime = TotalTime + duration;
                            }
                        }
                        objEmployeeData.totalInTime = TotalTime.ToString();        //total time

                        ListOfEmployeeData.Add(objEmployeeData);


                        //If distance from origin is greater than 40 meter then send Address with how much distance long from origin
                        string myQuery1 = "select * from in_out where _date='" + forDate.ToString("yyyy-MM-dd HH:mm:ss") + "' and uid='" + obj.uid[i].ToString() + "'";

                        conn.Open();
                        MySqlCommand    myCommand1 = new MySqlCommand(myQuery1, conn);
                        MySqlDataReader myRdr1     = myCommand1.ExecuteReader();


                        while (myRdr1.Read())
                        {
                            if (myRdr1.GetFloat("DistanceFromOrigin") > 100.000 || myRdr1.GetInt16("IsDeviceChanged") == 1)
                            {
                                Debug.WriteLine(myRdr1.GetFloat("DistanceFromOrigin").ToString());
                                objEmployeeData.Is_Loc_Device_Changed = "Red";
                            }
                            else
                            {
                                objEmployeeData.Is_Loc_Device_Changed = "White";
                            }
                        }
                        conn.Close();
                        //If IsDeviceChanged is true(1) send device id


                        conn.Open();//
                    }
                    conn.Close();
                    forDate = forDate.AddDays(1);
                }

                mainObject.employeeWiseData = ListOfEmployeeData;

                MainData.Add(mainObject);
            }

            return(MainData);
        }