Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
 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);
            }
        }