protected void period_SelectedIndexChanged(object sender, EventArgs e) { ddl_post.Items.Clear(); Person user = (Person)Session["User"]; SAPDB db = new SAPDB(); EmployeeList emp_list = new EmployeeList(); List<Post> post_list = null;/// pl.getPosts(db.getPostList(StartDateOfPeriod, EndDateOfPeriod, user.TabNum, this.role)); ListItem li = new ListItem("�������� ���������"); ddl_post.Items.Add(li); if (post_list != null) fillPosts(post_list); PeriodDB perdb = new PeriodDB(); Period per = perdb.getPeriod(Convert.ToInt32(month), Convert.ToInt32(year)); if (per.IsClosed == 1) lbStatus.Text = "������"; else lbStatus.Text = "������"; }
protected void Save_Click(object sender, ImageClickEventArgs e) { //Response.Write(Request.Form["test"]); Person user = (Person)Session["User"]; PeriodDB perdb = new PeriodDB(); Period per = perdb.getPeriod(Convert.ToInt32(this.month), Convert.ToInt32(this.year)); if (this.employees != null) { DepartmentList department_list = new DepartmentList(); List<Department> departments = department_list.getDepartments(employees); foreach (Department dep in departments) { EmployeeList emp_list = new EmployeeList(); List<Employee> emps = null;//// emp_list.getEmployeesOfDepartment(dep.DepartmentID, employees); EmployeeComparerByPostASC cmpByPostASC = new EmployeeComparerByPostASC(); emps.Sort(cmpByPostASC); foreach (Employee em in emps) { EmployeeList emplist = new EmployeeList(); List<TimekeeperHours> current = null;//emplist.getEmployeesTimekeeperHours(em); List<HRHours> hr_current = null;/// emplist.getEmployeesHRHours(em); for (int i = 1; i <= count_days; i++) { string textbox_id = "tb" + dep.DepartmentID + em.PostID + em.EmployeeID + i.ToString(); //string hr_id = "hr" + dep.DepartmentID + em.EmployeeID + i.ToString(); Date dt = new Date(); SQLDB db = new SQLDB(); string hour = Request.Form[textbox_id]; //string overhour = Request.Form[hr_id]; TimekeeperHours th = current.Find(delegate(TimekeeperHours ht) { return ht.Day == i.ToString(); }); decimal h = -1; string sym = ""; if ((hour != "") && (hour != null)) { if (HasSymbols(hour)) { if (th == null) db.insertTimekeeperHoursAndSymbols(em.EmployeeID, em.StartPeriod, em.BeginDate, em.EndDate, h, hour, user.TabNum, dep.DepartmentID, em.PostID, i.ToString(), month, year, per.PeriodID); else if (!th.Symbols.Equals(hour)) db.updateTimekeeperHoursAndSymbols(user.TabNum, h, hour, th.ID); } else { h = Convert.ToDecimal(hour); if (th == null) db.insertTimekeeperHoursAndSymbols(em.EmployeeID, em.StartPeriod, em.BeginDate, em.EndDate, h, sym, user.TabNum, dep.DepartmentID, em.PostID, i.ToString(), month, year, per.PeriodID); else if (th.Hours != h) db.updateTimekeeperHoursAndSymbols(user.TabNum, h, sym, th.ID); } } if ((hour == "") && (th != null)) db.deleteTimekeeperHours(th.ID); } } } } EncryptedQueryString QueryString = new EncryptedQueryString(); QueryString.Add("month", period.SelectedItem.Value); QueryString.Add("role", role); //Server.Transfer("TimeTable.aspx?data=" + QueryString.ToString()); //Response.Redirect("Tabel.aspx?data=" + QueryString.ToString()); }
protected void Page_Load(object sender, EventArgs e) { if (Session["User"] == null) Response.Redirect("Default.aspx"); Display disp = new Display(); Date dt = new Date(); SAPDB db = new SAPDB(); SQLDB sql = new SQLDB(); PeriodDB perdb = new PeriodDB(); Person user = (Person)Session["User"]; //List<Role> rol = user.Roles; //foreach (Role r in rol) // Response.Write(r.RoleID + " = " + r.RoleName); if (!IsPostBack) { fillMonths(); if (Request.QueryString["data"] == null) period.SelectedValue = dt.getMonthToday(); } year = period.SelectedItem.Text.Substring(period.SelectedItem.Text.Length - 4); month = period.SelectedItem.Value; string fio = ""; string tab_number = ""; string post = ""; check = false; closed = false; count_days = dt.getCountDays(Convert.ToInt32(month), Convert.ToInt32(year)); if (Request.QueryString["type"] != null) role = Request.QueryString["type"].ToString(); Period per = perdb.getPeriod(Convert.ToInt32(month), Convert.ToInt32(year)); if (per.IsClosed == 1) { lbStatus.Text = "������"; Traffic.Text = "<img alt='' src='App_Resources/red.bmp' style='position:relative; top:4px;' />"; closed = true; } else Traffic.Text = "<img alt='' src='App_Resources/green.bmp' style='position:relative; top:4px;' />"; if (Request.QueryString["data"] != null) { EncryptedQueryString QueryString = new EncryptedQueryString(Request.QueryString["data"]); if (QueryString["fio"] != null) fio = QueryString["fio"]; if (QueryString["tab"] != null) tab_number = QueryString["tab"]; if (QueryString["post"] != null) post = QueryString["post"]; if (QueryString["role"] != null) role = QueryString["role"]; if (QueryString["check"] != null) check = true; if (!QueryString["month"].Equals(period.SelectedItem.Value)) { fio = ""; tab_number = ""; post = ""; check = false; } } //Response.Write(month); //Response.Write("fio=" + fio + "tab=" + tab_number + " - " + month + "<br>"); //Response.Write(post + "<br>"); string start_date = dt.getSAPStartPeriodDate(month, year); string end_date = dt.getSAPEndPeriodDate(month, year); StartDateOfPeriod = start_date; EndDateOfPeriod = end_date; //Response.Write(start_date + end_date); Label lb = new Label(); lb.Text = disp.DisplayDaysTabel(count_days, 18); days.Controls.Add(lb); //Response.Write(start_date + end_date); //Period period_time = perdb.getPeriod(Convert.ToInt32(month), Convert.ToInt32(year)); setButtons(role); //Response.Write(start_date + "-" + end_date + "<br>"); this.employees = null;/// db.getEmployeeList(start_date, end_date, user.TabNum, this.role); EmployeeList emp_list = new EmployeeList(); List<Post> post_list = null;/// pl.getPosts(db.getPostList(start_date, end_date, user.TabNum, this.role)); if (post_list != null) { fillPosts(post_list); } else { ListItem li = new ListItem("�������� ���������"); ddl_post.Items.Add(li); } /*if (post != "") { if (post != "���") { EmployeeList empl = new EmployeeList(); // this.employees = empl.getEmployeesOnCurrentPost(post, employees); } } if (fio != "") { EmployeeList emp_fio = new EmployeeList(); this.employees = emp_fio.getEmployeesByFIO(fio, employees); } if (tab_number != "") { EmployeeList emp_tab = new EmployeeList(); this.employees = emp_tab.getEmployeesByTab(tab_number, employees); }*/ if (check) { EmployeeList emp_check = new EmployeeList(); /////this.employees = emp_check.getWrongCheckedEmployees(employees, count_days, hours, overhours); } if (employees != null) { DepartmentList department_list = new DepartmentList(); List<Department> departments = department_list.getDepartments(employees); foreach (Department dep in departments) { Label depart = new Label(); depart.Text = disp.DisplayDepartmentName(dep.DepartmentName, dep.DepartmentID, StartDateOfPeriod); content.Controls.Add(depart); Label lbEmps = new Label(); lbEmps.Text = "<div id='" + dep.DepartmentID + "' style='display:none'>"; // �������� ���� �������� ��� �������� �������� /*EmployeeList emp_list = new EmployeeList(); List<Employee> emps = emp_list.getEmployeesOfDepartment(dep.DepartmentID, employees); EmployeeComparerByPostASC cmpByPostASC = new EmployeeComparerByPostASC(); emps.Sort(cmpByPostASC); //for (int j = 0; j < 100; j++) foreach (Employee em in emps) { lbEmps.Text += "<table cellpadding='0' cellspacing='0' border='0' class='employee'><tr><td class='main_info_left_no'> </td><td class='employee_post'>" + em.Post + "</td><td class='employee_id'>" + em.EmployeeID + "</td><td class='employee_name'><img src='App_Resources/person.gif' style='cursor: hand; cursor: pointer;'> <span style='cursor: hand; cursor: pointer;' onclick='window.open(\"" + getCardUrl(em.EmployeeID) +"\",\"displayWindow\",\"menubar=no,width=800,height=600,resizable=yes,scrollbars=yes\")'>" + em.FullName + "</span></td><td class='employee_grid_line_center'> </td><td>" + disp.DisplaySchedules(count_days, 18, em.EmployeeID, dep.DepartmentID, hours, overhours, em.Schedule, em.ScheduleDeflection, role, check, closed) + "</td><td class='main_info_right_no'></td></tr></table>"; }*/ lbEmps.Text += "</div>"; content.Controls.Add(lbEmps); } } // ajax �� �������� ������ ����������� ������������� ������������� string cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "ClientCallback", "context"); string func_name = "FillEmployeesCallback"; string cbScript = "function " + func_name + "(arg, context)" + "{" + cbReference + ";" + "}"; Page.ClientScript.RegisterClientScriptBlock(this.GetType(), func_name, cbScript, true); }
protected void Page_Load(object sender, EventArgs e) { if (Session["User"] == null) Response.Redirect("Default.aspx"); Date dt = new Date(); SAPDB db = new SAPDB(); SQLDB sql = new SQLDB(); PeriodDB perdb = new PeriodDB(); NightHoursDB nightdb = new NightHoursDB(); Person user = (Person)Session["User"]; string role = ""; string month_id = ""; string year = ""; string start_date = ""; string end_date = ""; if (Request.QueryString["rtb"] != null) { EncryptedQueryString QueryString = new EncryptedQueryString(Request.QueryString["rtb"]); if (QueryString["role"] != null) role = QueryString["role"].ToString(); if (QueryString["month_id"] != null) month_id = QueryString["month_id"].ToString(); if (QueryString["year"] != null) year = QueryString["year"].ToString(); if (QueryString["start_date"] != null) start_date = QueryString["start_date"].ToString(); if (QueryString["end_date"] != null) end_date = QueryString["end_date"].ToString(); } List<NightHours> nighthours = nightdb.getNightHours(); Period per = perdb.getPeriod(Convert.ToInt32(month_id), Convert.ToInt32(year)); EmployeeList emp_list = new EmployeeList(); List<Employee> all_employees = db.getEmployeeListForReports(start_date, end_date, user.TabNum, role); if (all_employees == null) { MessageBox.Show("Невозможно сформировать отчет! Список сотрудников за период пуст!"); return; } EmployeeComparerByFullnameASC emp_comp = new EmployeeComparerByFullnameASC(); all_employees.Sort(emp_comp); Response.Clear(); Response.Charset = "utf-8"; Response.ContentType = "application/vnd.ms-excel"; string str = @"<table cellspacing='0' cellpadding='0' border='1'> <tr> <td width='30px' style='font-weight: bold;' align='center' valign='middle'> Таб. номер </td> <td width='100px' style='font-weight: bold;' align='center' valign='middle'> ФИО </td>"; int count_days = dt.getCountDays(per.MonthID, per.Year); for (int i = 1; i <= count_days; i++) str += "<td width='20px' style='font-weight: bold;' align='center'>" + i.ToString() + "</td><td width='20px' style='background-color: #99CCFF; font-weight: bold;' align='center' >" + i.ToString() + "a</td>"; str += "<td> </td><td> </td><td> </td></tr>"; foreach (Employee emp in all_employees) { str += "<tr>"; str += "<td width='30px' align='center'>" + DeleteZeroFromEmployeeID(emp.EmployeeID) + "</td>"; str += "<td width='100px' align='center'>" + emp.FullName + "</td>"; int day = 1; List<HRHours> hr_current = sql.getHRHours(emp.EmployeeID, emp.StartPeriod, emp.BeginDate, emp.EndDate); List<Schedule> schedule = sql.getSchedule(emp.EmployeeID, emp.StartPeriod, emp.BeginDate, emp.EndDate); List<ScheduleDeflection> dschedule = sql.getScheduleDeflection(emp.EmployeeID, emp.StartPeriod, emp.BeginDate, emp.EndDate); foreach (Schedule sch in schedule) { decimal all_hours = 0; decimal night_hours = 0; int d = Convert.ToInt32(sch.DayPeriod); // если у нас день не совпадает с днем в графике, заполняю пустым квадратом //TimekeeperHours tkh = tkh_current.Find(delegate(TimekeeperHours h) { return Convert.ToInt32(h.Day) == day; }); HRHours hr = hr_current.Find(delegate(HRHours hrh) { return Convert.ToInt32(hrh.Day) == day; }); if (hr != null) { all_hours += hr.DayOverHours + hr.NightOverHours; night_hours += hr.NightOverHours; } while (d != day) { if (day == count_days) break; if (all_hours != 0) str += "<td width='20px' align='center'>" + all_hours.ToString() + "</td>"; else str += "<td width='20px' align='center'> </td>"; if (night_hours != 0) str += "<td width='20px' style='background-color: #99CCFF;' align='center'>" + night_hours.ToString() + "</td>"; else str += "<td width='20px' style='background-color: #99CCFF;' align='center'> </td>"; day++; } ScheduleDeflection sd = dschedule.Find(delegate(ScheduleDeflection dsch) { return Convert.ToInt32(dsch.DayPeriod) == day; }); if (sd != null) { //time = CheckDecimalNumber(sd.CodeT13); decimal diversity = sch.TimeHours - sd.TimeHours; if (diversity != 0) { if (diversity > 0) { all_hours = diversity; } else { all_hours = sd.TimeHours; } } if (all_hours != 0) str += "<td width='20px' align='center'>" + all_hours.ToString() + "</td>"; else str += "<td width='20px' align='center'> </td>"; if (night_hours != 0) str += "<td width='20px' style='background-color: #99CCFF;' align='center'>" + night_hours.ToString() + "</td>"; else str += "<td width='20px' style='background-color: #99CCFF;' align='center'> </td>"; } else { // если выходной или изменение на выходной то пишем в отклонения по выходному дню if (((sch.DaySchedule == "FREE") && (Convert.ToInt32(sch.TimeHours) == 0)) || (sch.DayScheduleVar == "F")) { if (all_hours != 0) str += "<td width='20px' align='center'>" + all_hours.ToString() + "</td>"; else str += "<td width='20px' align='center'> </td>"; if (night_hours != 0) str += "<td width='20px' style='background-color: #99CCFF;' align='center'>" + night_hours.ToString() + "</td>"; else str += "<td width='20px' style='background-color: #99CCFF;' align='center'> </td>"; } else { //decimal hour_start = Convert.ToInt32(sch.TimeBegin.Substring(0, 2)); //decimal hour_end = Convert.ToInt32(sch.TimeEnd.Substring(0, 2)); //decimal minute_start = Convert.ToDecimal(sch.TimeBegin.Substring(2, 2)); //decimal minute_end = Convert.ToDecimal(sch.TimeEnd.Substring(2, 2)); //if (hour_start == 0) hour_start = 24; //if (hour_end == 0) hour_end = 24;\ /* hour_start += minute_start / 60; hour_end += minute_end / 60; if (sch.TimeHours != 0) { if ((hour_start > 6) && (hour_end < 22)) all_hours += sch.TimeHours; if (hour_start <= 6) { night_hours += 6 - hour_start - 1; all_hours += sch.TimeHours; } if (hour_end >= 22) { night_hours += hour_end - 22; all_hours += sch.TimeHours; } } */ all_hours += sch.TimeHours; NightHours nhour = nighthours.Find(delegate(NightHours nh) { return nh.DaySchedule.ToUpper() == sch.DaySchedule.ToUpper(); }); if (nhour != null) { night_hours += nhour.Night_Hours; } //day_hours += (night_hours + sch.TimeHours); if (all_hours != 0) str += "<td width='20px' align='center'>" + all_hours.ToString() + "</td>"; else str += "<td width='20px' align='center'> </td>"; if (night_hours != 0) str += "<td width='20px' style='background-color: #99CCFF;' align='center'>" + night_hours.ToString() + "</td>"; else str += "<td width='20px' style='background-color: #99CCFF;' align='center'> </td>"; } } day++; } while (day <= count_days) { decimal all_hours = 0; decimal night_hours = 0; //HRHours hr = hr_current.Find(delegate(HRHours hrh) { return Convert.ToInt32(hrh.Day) == day; }); if (all_hours != 0) str += "<td width='20px' align='center'>" + all_hours.ToString() + "</td>"; else str += "<td width='20px' align='center'> </td>"; if (night_hours != 0) str += "<td width='20px' style='background-color: #99CCFF;' align='center'>" + night_hours.ToString() + "</td>"; else str += "<td width='20px' style='background-color: #99CCFF;' align='center'> </td>"; day++; } str += "<td>" + getCompany(emp.Department) + "</td><td>" + getPath(emp.Department) + "</td><td>" + getDepartment(emp.Department) + "</td>"; str += "</tr>"; } str += "</table>"; Response.Write(str); Response.End(); }
protected void Page_Load(object sender, EventArgs e) { if (Session["User"] == null) Response.Redirect("Default.aspx"); Date dt = new Date(); SAPDB db = new SAPDB(); SQLDB sql = new SQLDB(); PeriodDB perdb = new PeriodDB(); Person user = (Person)Session["User"]; string role = ""; string month_id = ""; string year = ""; string start_date = ""; string end_date = ""; if (Request.QueryString["rft"] != null) { EncryptedQueryString QueryString = new EncryptedQueryString(Request.QueryString["rft"]); if (QueryString["role"] != null) role = QueryString["role"].ToString(); if (QueryString["month_id"] != null) month_id = QueryString["month_id"].ToString(); if (QueryString["year"] != null) year = QueryString["year"].ToString(); if (QueryString["start_date"] != null) start_date = QueryString["start_date"].ToString(); if (QueryString["end_date"] != null) end_date = QueryString["end_date"].ToString(); } Period per = perdb.getPeriod(Convert.ToInt32(month_id), Convert.ToInt32(year)); EmployeeList emp_list = new EmployeeList(); List<Employee> all_employees = db.getEmployeeListForReports(start_date, end_date, user.TabNum, role); if (all_employees == null) { MessageBox.Show("Невозможно сформировать отчет! Список сотрудников за период пуст!"); return; } EmployeeComparerByFullnameASC emp_comp = new EmployeeComparerByFullnameASC(); all_employees.Sort(emp_comp); Response.Clear(); Response.Charset = "utf-8"; Response.ContentType = "application/vnd.ms-excel"; string str = @"<table cellspacing='0' cellpadding='0' border='1'> <tr> <td colspan='25' style='border: 0px; height: 30px; font-weight: bold;' align='center' valign='middle'> ОТЧЕТ </td> <td> </td><td> </td><td> </td> </tr> <tr> <td colspan='25' style='border: 0px; height: 30px;' align='center' valign='middle'>"; str += "по фактически отработанному времени за " + per.MonthName.ToUpper() + " " + per.Year + " года</td><td> </td><td> </td><td> </td></tr>"; str += @"<tr> <td rowspan='2' style='background-color: #99CCFF; font-weight: bold;' align='center'> Таб. номер </td> <td rowspan='2' style='background-color: #99CCFF; font-weight: bold;' align='center'> ФИО </td> <td rowspan='2' style='width:80px; background-color: #99CCFF; font-weight: bold;' align='center'> Кол-во рабочих часов по графику (норма) </td> <td colspan='20' style='height: 30px; background-color: #99CCFF; font-weight: bold;' align='center'> ОТКЛОНЕНИЯ </td> <td rowspan='2' style='width:80px; background-color: #99CCFF; font-weight: bold;' align='center'> Итого отработано часов за период (факт) </td> <td rowspan='2' style='width:80px; background-color: #99CCFF; font-weight: bold;' align='center'> Итого отработано сверурочных часов </td> <td rowspan='2'> </td><td rowspan='2'> </td><td rowspan='2'> </td> </tr> <tr> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Временная нетрудоспособность </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Выходные дни (еженедельный отпуск) и нерабочие праздничные дни </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Время простоя по вине работника </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Невыходы на время исполнения государственных или общественных обязанностей согласно законодательству </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Отпуск без сохранения заработной платы, предоставляемый работнику по разрешению работодателя </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Служебная командировка </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Неявки по невыясненным причинам (до выяснения обстоятельств) </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Время простоя по причинам, не зависящим от работодателя и работника </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Дополнительные выходные дни (оплачиваемые) </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Ежегодный дополнительный оплачиваемый отпуск </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Отпуск по уходу за ребенком до достижения им возраста трех лет </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Отпуск без сохранения заработной платы при условиях, предусмотренных действующим законодательством Российской Федерации </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Ежегодный основной оплачиваемый отпуск </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Повышение квалификации с отрывом от работы </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Прогулы (отсутствие на рабочем месте без уважительных причин в течение времени, установленного законодательством) </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Отпуск по беременности и родам (отпуск в связи с усыновлением новорожденного ребенка) </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Время простоя по вине работодателя </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Дополнительный отпуск в связи с обучением с сохранением среднего заработка работникам, совмещающим работу с обучением </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Дополнительный отпуск в связи с обучением без сохранения заработной платы </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Работа в выходные и праздничные дни </td> </tr> "; foreach(Employee emp in all_employees) { decimal norma = 0; decimal overhours = 0; decimal def_sum = 0; Deflections d = new Deflections(); List<HRHours> hr_current = sql.getHRHours(emp.EmployeeID, emp.StartPeriod, emp.BeginDate, emp.EndDate); List<Schedule> schedule = sql.getSchedule(emp.EmployeeID, emp.StartPeriod, emp.BeginDate, emp.EndDate); List<ScheduleDeflection> dschedule = sql.getScheduleDeflection(emp.EmployeeID, emp.StartPeriod, emp.BeginDate, emp.EndDate); foreach (Schedule sch in schedule) { // если выходной или изменение на выходной то пишем в отклонения по выходному дню if (((sch.DaySchedule == "FREE") && (Convert.ToInt32(sch.TimeHours) == 0)) || (sch.DayScheduleVar == "F")) d.def_V += sch.TimeHours; else norma += sch.TimeHours; } foreach (HRHours over in hr_current) overhours += (over.DayOverHours + over.NightOverHours); foreach (ScheduleDeflection sdf in dschedule) { def_sum += sdf.TimeHours; if (sdf.CodeT13.Equals("РВ")) { def_sum -= sdf.TimeHours; // убираем из поля Итого отработано по факту overhours += sdf.TimeHours; // записываем в поле Итого сверхурочных часов } switch (sdf.CodeT13) { case "Б": d.def_B += sdf.TimeHours; break; case "ВП": d.def_VP += sdf.TimeHours; break; case "Г": d.def_G += sdf.TimeHours; break; case "ДО": d.def_DO += sdf.TimeHours; break; case "К": d.def_K += sdf.TimeHours; break; case "НН": d.def_NN += sdf.TimeHours; break; case "НП": d.def_NP += sdf.TimeHours; break; case "ОВ": d.def_OV += sdf.TimeHours; break; case "ОД": d.def_OD += sdf.TimeHours; break; case "ОЖ": d.def_OJ += sdf.TimeHours; break; case "ОЗ": d.def_OZ += sdf.TimeHours; break; case "ОТ": d.def_OT += sdf.TimeHours; break; case "ПК": d.def_PK += sdf.TimeHours; break; case "ПР": d.def_PR += sdf.TimeHours; break; case "Р": d.def_R += sdf.TimeHours; break; case "РП": d.def_RP += sdf.TimeHours; break; case "У": d.def_U += sdf.TimeHours; break; case "УД": d.def_UD += sdf.TimeHours; break; case "РВ": d.def_RV += sdf.TimeHours; break; default: break; } } str += "<tr>"; str += "<td align='center'>" + DeleteZeroFromEmployeeID(emp.EmployeeID) + "</td>"; str += "<td align='center'>" + emp.FullName + "</td>"; if (norma != 0) str += "<td align='center'>" + norma.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_B != 0) str += "<td align='center'>" + d.def_B.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_V != 0) str += "<td align='center'>" + d.def_V.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_VP != 0) str += "<td align='center'>" + d.def_VP.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_G != 0) str += "<td align='center'>" + d.def_G.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_DO != 0) str += "<td align='center'>" + d.def_DO.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_K != 0) str += "<td align='center'>" + d.def_K.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_NN != 0) str += "<td align='center'>" + d.def_NN.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_NP != 0) str += "<td align='center'>" + d.def_NP.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_OV != 0) str += "<td align='center'>" + d.def_OV.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_OD != 0) str += "<td align='center'>" + d.def_OD.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_OJ != 0) str += "<td align='center'>" + d.def_OJ.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_OZ != 0) str += "<td align='center'>" + d.def_OZ.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_OT != 0) str += "<td align='center'>" + d.def_OT.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_PK != 0) str += "<td align='center'>" + d.def_PK.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_PR != 0) str += "<td align='center'>" + d.def_PR.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_R != 0) str += "<td align='center'>" + d.def_R.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_RP != 0) str += "<td align='center'>" + d.def_RP.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_U != 0) str += "<td align='center'>" + d.def_U.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_UD != 0) str += "<td align='center'>" + d.def_UD.ToString() + "</td>"; else str += "<td> </td>"; if (d.def_RV != 0) str += "<td align='center'>" + d.def_RV.ToString() + "</td>"; else str += "<td> </td>"; if ((norma - def_sum) != 0) str += "<td align='center'>" + (norma - def_sum).ToString() + "</td>"; else str += "<td> </td>"; if (overhours != 0) str += "<td align='center'>" + overhours.ToString() + "</td>"; else str += "<td> </td>"; str += "<td>" + getCompany(emp.Department) + "</td><td>" + getPath(emp.Department) + "</td><td>" + getDepartment(emp.Department) + "</td>"; str += "</tr>"; str += "</tr>"; } str += "</table>"; Response.Write(str); Response.End(); }
protected void Page_Load(object sender, EventArgs e) { //if (Session["User"] == null) Response.Redirect("Default.aspx"); Date dt = new Date(); SAPDB db = new SAPDB(); SQLDB sqldb = new SQLDB(); PeriodDB perdb = new PeriodDB(); Person user = (Person)Session["User"]; string role = ""; string month_id = ""; string year = ""; string start_date = ""; string end_date = ""; /*if (Request.QueryString["rft"] != null) { EncryptedQueryString QueryString = new EncryptedQueryString(Request.QueryString["rft"]); if (QueryString["role"] != null) role = QueryString["role"].ToString(); if (QueryString["month_id"] != null) month_id = QueryString["month_id"].ToString(); if (QueryString["year"] != null) year = QueryString["year"].ToString(); if (QueryString["start_date"] != null) start_date = QueryString["start_date"].ToString(); if (QueryString["end_date"] != null) end_date = QueryString["end_date"].ToString(); }*/ role = "2"; month_id = "07"; year = "2009"; start_date = "20090701"; end_date = "20090731"; Period per = perdb.getPeriod(Convert.ToInt32(month_id), Convert.ToInt32(year)); /* EmployeeList emp_list = new EmployeeList(); List<Employee> all_employees = db.getEmployeeListForReports(start_date, end_date, user.TabNum, role); if (all_employees == null) { MessageBox.Show("Невозможно сформировать отчет! Список сотрудников за период пуст!"); return; } EmployeeComparerByFullnameASC emp_comp = new EmployeeComparerByFullnameASC(); all_employees.Sort(emp_comp); */ //Response.Clear(); //Response.Charset = "utf-8"; //Response.ContentType = "application/vnd.ms-excel"; string str = @"<table cellspacing='0' cellpadding='0' border='1'> <tr> <td colspan='25' style='border: 0px; height: 30px; font-weight: bold;' align='center' valign='middle'> ОТЧЕТ </td> <td> </td><td> </td><td> </td> </tr> <tr> <td colspan='25' style='border: 0px; height: 30px;' align='center' valign='middle'>"; str += "по фактически отработанному времени за " + per.MonthName.ToUpper() + " " + per.Year + " года</td><td> </td><td> </td><td> </td></tr>"; str += @"<tr> <td rowspan='2' style='background-color: #99CCFF; font-weight: bold;' align='center'> Таб. номер </td> <td rowspan='2' style='background-color: #99CCFF; font-weight: bold;' align='center'> ФИО </td> <td rowspan='2' style='width:80px; background-color: #99CCFF; font-weight: bold;' align='center'> Кол-во рабочих часов по графику (норма) </td> <td colspan='20' style='height: 30px; background-color: #99CCFF; font-weight: bold;' align='center'> ОТКЛОНЕНИЯ </td> <td rowspan='2' style='width:80px; background-color: #99CCFF; font-weight: bold;' align='center'> Итого отработано часов за период (факт) </td> <td rowspan='2' style='width:80px; background-color: #99CCFF; font-weight: bold;' align='center'> Итого отработано сверурочных часов </td> <td rowspan='2'> </td><td rowspan='2'> </td><td rowspan='2'> </td> </tr> <tr> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Временная нетрудоспособность </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Выходные дни (еженедельный отпуск) и нерабочие праздничные дни </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Время простоя по вине работника </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Невыходы на время исполнения государственных или общественных обязанностей согласно законодательству </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Отпуск без сохранения заработной платы, предоставляемый работнику по разрешению работодателя </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Служебная командировка </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Неявки по невыясненным причинам (до выяснения обстоятельств) </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Время простоя по причинам, не зависящим от работодателя и работника </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Дополнительные выходные дни (оплачиваемые) </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Ежегодный дополнительный оплачиваемый отпуск </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Отпуск по уходу за ребенком до достижения им возраста трех лет </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Отпуск без сохранения заработной платы при условиях, предусмотренных действующим законодательством Российской Федерации </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Ежегодный основной оплачиваемый отпуск </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Повышение квалификации с отрывом от работы </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Прогулы (отсутствие на рабочем месте без уважительных причин в течение времени, установленного законодательством) </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Отпуск по беременности и родам (отпуск в связи с усыновлением новорожденного ребенка) </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Время простоя по вине работодателя </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Дополнительный отпуск в связи с обучением с сохранением среднего заработка работникам, совмещающим работу с обучением </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Дополнительный отпуск в связи с обучением без сохранения заработной платы </td> <td style='width:80px; background-color: #FFFF99; font-weight: bold;' align='center'> Работа в выходные и праздничные дни </td> </tr> "; writeToFile(str); string ConnectionString = WebConfigurationManager.ConnectionStrings["Timeboard"].ConnectionString; SqlConnection conn = new SqlConnection(ConnectionString); string sql = "SELECT * FROM rolf_timeboard_report_deviations WHERE (start_period = @start_period)"; SqlCommand cmd = new SqlCommand(sql, conn); cmd.Parameters.Add(new SqlParameter("@start_period", SqlDbType.VarChar, 8)); cmd.Parameters["@start_period"].Value = "20090701"; conn.Open(); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { str += "<tr>"; str += "<td align='center'>" + (int)reader["employee_id"] + "</td>"; str += "<td align='center'>" + (string)reader["full_name"] + "</td>"; str += "<td align='center'>" + (decimal)reader["time_norm"] + "</td>"; str += "<td align='center'>" + (decimal)reader["Б"] + "</td>"; str += "<td align='center'>" + (decimal)reader["В"] + "</td>"; str += "<td align='center'>" + (decimal)reader["ВП"] + "</td>"; str += "<td align='center'>" + (decimal)reader["Г"] + "</td>"; str += "<td align='center'>" + (decimal)reader["ДО"] + "</td>"; str += "<td align='center'>" + (decimal)reader["К"] + "</td>"; str += "<td align='center'>" + (decimal)reader["НН"] + "</td>"; str += "<td align='center'>" + (decimal)reader["НП"] + "</td>"; str += "<td align='center'>" + (decimal)reader["ОВ"] + "</td>"; str += "<td align='center'>" + (decimal)reader["ОД"] + "</td>"; str += "<td align='center'>" + (decimal)reader["ОЖ"] + "</td>"; str += "<td align='center'>" + (decimal)reader["ОЗ"] + "</td>"; str += "<td align='center'>" + (decimal)reader["ОТ"] + "</td>"; str += "<td align='center'>" + (decimal)reader["ПК"] + "</td>"; str += "<td align='center'>" + (decimal)reader["ПР"] + "</td>"; str += "<td align='center'>" + (decimal)reader["Р"] + "</td>"; str += "<td align='center'>" + (decimal)reader["РП"] + "</td>"; str += "<td align='center'>" + (decimal)reader["У"] + "</td>"; str += "<td align='center'>" + (decimal)reader["УД"] + "</td>"; str += "<td align='center'>" + (decimal)reader["РВ"] + "</td>"; str += "<td align='center'>" + (decimal)reader["Total_actual"] + "</td>"; str += "<td align='center'>" + (decimal)reader["hr_overhours"] + "</td>"; //str += "<td>" + getCompany(emp.Department) + "</td><td>" + getPath(emp.Department) + "</td><td>" + getDepartment(emp.Department) + "</td>"; str += "</tr>"; writeToFile(str); } reader.Close(); str += "</table>"; writeToFile(str); ////Response.Write(str); //Response.End(); }
// формируем отчетные периоды в формате - название мес¤ца + год (отображаетс¤ в выпадающем списке) public List<Period> getPeriodsToDropDownList() { MonthDB monthDB = new MonthDB(); PeriodDB periodDB = new PeriodDB(); List<Period> periods = new List<Period>(); int year = DateTime.Now.Year; int curMonth = DateTime.Now.Month; int furtherMonth = curMonth; int furtherYear = year; int day = DateTime.Now.Day; if (furtherMonth == 12) { furtherMonth = 1; furtherYear++; } else furtherMonth++; // если сегодн¤ первое число мес¤ца, то провер¤ем есть запись с новым периодом. ≈сли нет, то записываем новый период. if (!periodDB.isPeriodExists(furtherMonth, furtherYear)) periodDB.insertNewPeriod(furtherMonth, monthDB.getMonthName(furtherMonth), furtherYear, 0); Period p3 = periodDB.getPeriod(furtherMonth, furtherYear); p3.MonthName = p3.MonthName + " " + p3.Year.ToString(); periods.Add(p3); Period p1 = periodDB.getPeriod(curMonth, year); p1.MonthName = p1.MonthName + " " + p1.Year.ToString(); periods.Add(p1); // если сейчас ¤нварь, то получаем данные за декабрь предыдущего года if (curMonth == 1) { year--; curMonth = 12; } else curMonth--; Period p2 = periodDB.getPeriod(curMonth, year); p2.MonthName = p2.MonthName + " " + p2.Year.ToString(); periods.Add(p2); /* Period p4 = periodDB.getPeriod(5, 2009); p4.MonthName = p4MonthName + " " + p4.Year.ToString(); periods.Add(p4); */ return periods; }