public static void UpdateCTCC(DTO.ChiTietChamCongDTO ctcc) { string query = @"UPDATE ChiTietChamCong SET TrangThai=1 Where MaChamCong='" + ctcc.MaChamCong + "' and MaNV='" + ctcc.MaNV + "'"; DataProvider dataProvider = new DataProvider(); try { dataProvider.ExecuteUpdateQuery(query); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { dataProvider.disconnect(); } }
public static void UpdateCTCC(DTO.ChiTietChamCongDTO ctcc) { DAO.ChiTietChamCongDAO.UpdateCTCC(ctcc); }
private void btnTinhLuong_Click(object sender, RoutedEventArgs e) { try { if (MainWindow.selectedTableStatic.Rows.Count > 0) { string congThuc = Infix2Postfix(BUS.CongThucTinhLuongBUS.GetCongThucTinhLuong().Rows[0][0].ToString()); DataTable dtLCB = BUS.NhanVienBUS.GetNhanVienLuongCB(MainWindow.selectedTableStatic); foreach (DataRow row in dtLCB.Rows) { string manv = row[0].ToString(); DataTable cc = BUS.ChiTietChamCongBUS.GetCTCCByMANV(manv); foreach (DataRow rowCC in cc.Rows) { DTO.ChiTietChamCongDTO ctcc = new DTO.ChiTietChamCongDTO(); ctcc.MaChamCong = rowCC[0].ToString(); ctcc.MaNV = rowCC[1].ToString(); ctcc.NgayCong = Int32.Parse(rowCC[2].ToString()); ctcc.TrangThai = Int32.Parse(rowCC[3].ToString()); long luongCB = Convert.ToInt64(row[1].ToString()); long phucCap = 0; DataTable tbtemp = BUS.NhanVienBUS.GetNhanVienPhuCap(manv); if (tbtemp.Rows.Count > 0) { phucCap = Convert.ToInt64(tbtemp.Rows[0][1].ToString()); } long tongHoaDon = 0; tbtemp = BUS.ChamCongBUS.GetChamCongByMaCC(ctcc.MaChamCong); string thang = tbtemp.Rows[0][1].ToString(); string nam = tbtemp.Rows[0][2].ToString(); tbtemp = BUS.NhanVienBUS.GetNhanVienTongHoaDon(manv, thang, nam); if (tbtemp.Rows[0][0].ToString() != "") { tongHoaDon = Convert.ToInt64(tbtemp.Rows[0][0].ToString()); } Stack <long> stk = new Stack <long>(); IEnumerable <string> enumer = congThuc.Split(' '); bool isPhuCap = false; bool isHoaDon = false; long number = 0; foreach (string s in enumer) { if (s == "") { break; } if (IsOperand(s)) { switch (s) { case "A": stk.Push(luongCB); break; case "B": stk.Push(ctcc.NgayCong); break; case "C": stk.Push(phucCap); isPhuCap = true; break; case "D": stk.Push(tongHoaDon); isHoaDon = true; break; default: stk.Push(long.Parse(s)); number += long.Parse(s); break; } } else { long x = stk.Pop(); long y = stk.Pop(); switch (s) { case "+": y += x; break; case "-": y -= x; break; case "*": y *= x; break; case "/": y /= x; break; case "%": y %= x; break; } stk.Push(y); } } long tongLuongChuaThue = stk.Pop(); if (isPhuCap == true) { tongLuongChuaThue -= phucCap; } if (isHoaDon == true) { tongLuongChuaThue -= tongHoaDon; } tongLuongChuaThue -= number; long tongLuongDaThue = 0; long thue = 0; if (tongLuongChuaThue <= 5000000) { thue = tongLuongChuaThue * 5 / 100; } else if (tongLuongChuaThue > 5000000 && tongLuongChuaThue <= 10000000) { thue = 250000 + (tongLuongChuaThue - 5000000) * 10 / 100; } else if (tongLuongChuaThue > 10000000 && tongLuongChuaThue <= 18000000) { thue = 750000 + (tongLuongChuaThue - 10000000) * 15 / 100; } else if (tongLuongChuaThue > 18000000 && tongLuongChuaThue <= 32000000) { thue = 1950000 + (tongLuongChuaThue - 18000000) * 20 / 100; } else if (tongLuongChuaThue > 32000000 && tongLuongChuaThue <= 52000000) { thue = 4750000 + (tongLuongChuaThue - 32000000) * 25 / 100; } else if (tongLuongChuaThue > 52000000 && tongLuongChuaThue <= 80000000) { thue = 9750000 + (tongLuongChuaThue - 52000000) * 30 / 100; } else { thue = 18150000 + (tongLuongChuaThue - 80000000) * 35 / 100; } tongLuongDaThue = tongLuongChuaThue - thue; tongLuongDaThue += number; if (isPhuCap == true) { tongLuongDaThue += phucCap; } if (isHoaDon == true) { tongLuongDaThue += tongHoaDon; } BUS.NguoiDungBUS.SetIsUpdated(Login.Account); BUS.BangLuongBUS.AddBangLuong(manv, ctcc.MaChamCong, luongCB.ToString(), phucCap.ToString(), tongHoaDon.ToString(), tongLuongDaThue.ToString()); DAO.ChiTietChamCongDAO.UpdateCTCC(ctcc); } } MessageBox.Show("Đã tính lương xong!"); dataGridSalary.DataContext = null; } } catch (Exception ex) { MessageBox.Show(ex.Message); } }