Inheritance: IP.Core.IPUserService.US_Object
        private void setup_for_update_lns(decimal ip_dc_id_gd_he_so_lns)
        {
            m_e_loai_form = e_loai_form.UPDATE_LNS;
            US_GD_HE_SO_LNS v_us_hs_lns = new US_GD_HE_SO_LNS(ip_dc_id_gd_he_so_lns);
            US_GD_HS_LNS_LCD v_us_hs_lns_lcd = new US_GD_HS_LNS_LCD();//new US_GD_HS_LNS_LCD(v_us_hs_lns.dcID_HS_LNS_LCD);

            m_us_save.dcID = ip_dc_id_gd_he_so_lns;

            m_sle_hop_dong.EditValue = v_us_hs_lns_lcd.dcID_HOP_DONG;
            m_txt_gia_tri_thay_doi.EditValue = v_us_hs_lns.dcHE_SO;
            m_dat_tu_ngay.DateTime = v_us_hs_lns.datNGAY_BAT_DAU;
            m_dat_den_ngay.DateTime = v_us_hs_lns.datNGAY_KET_THUC;
            //m_le_ly_do_chinh_sua.EditValue = v_us_hs_lns.dcID_LY_DO_CHINH_SUA;
            m_txt_ghi_chu.Text = v_us_hs_lns.strGHI_CHU;
            Text = "F391 - Cập nhật chỉnh sửa hệ số LNS";

            US_GD_HOP_DONG v_us_hd = new US_GD_HOP_DONG();
            decimal op_he_so = 0;
            string op_ma = "";
            string op_muc = "";
            v_us_hd.LayMaMucLNSCuaHopDong(Convert.ToDecimal(m_sle_hop_dong.EditValue), out op_he_so, out op_ma, out op_muc);
            m_txt_ma.Text = op_ma;
            m_txt_muc.Text = op_muc;
            m_txt_gia_tri_ma_muc.EditValue = op_he_so;

            m_sle_hop_dong.ReadOnly = true;
        }
        private void form_2_us_gd_hs_lns_lcd(US_GD_HS_LNS_LCD ip_us)
        {
            if (m_sle_chon_quyet_dinh.EditValue != null && m_sle_chon_quyet_dinh.EditValue != "")
            {
                ip_us.dcID_QUYET_DINH = CIPConvert.ToDecimal(m_sle_chon_quyet_dinh.EditValue);
            }

            ip_us.dcID_HOP_DONG = m_id_gd_hd;
            ip_us.dcID_HS_LNS = m_id_hs_lns;
            ip_us.dcID_LCD = m_id_lcd;
            if (m_e_form_mode == DataEntryFormMode.InsertDataState)
            {
                ip_us.datNGAY_LAP = DateTime.Now.Date;
                //nguoi lap
                ip_us.strNGUOI_LAP = CAppContext_201.getCurrentUserName();
            }
            else if (m_e_form_mode == DataEntryFormMode.UpdateDataState)
            {
                ip_us.datNGAY_SUA = DateTime.Now.Date;
                //nguoi sua
                ip_us.strNGUOI_SUA = CAppContext_201.getCurrentUserName();
            }
            ip_us.strDA_XOA = "N";
        }
        private void save_data()
        {
            US_GD_HS_LNS_LCD v_us_gd_hs_lns_lcd = new US_GD_HS_LNS_LCD();
            US_GD_HE_SO_LNS v_us_gd_hs_lns = new US_GD_HE_SO_LNS();
            US_GD_LUONG_CHE_DO v_us_gd_lcd = new US_GD_LUONG_CHE_DO();

            form_2_us_gd_hs_lns_lcd(v_us_gd_hs_lns_lcd);
            form_2_us_gd_hs_lns(v_us_gd_hs_lns);
            form_2_us_gd_lcd(v_us_gd_lcd);
            try
            {
                switch (m_e_form_mode)
                {
                    case DataEntryFormMode.InsertDataState:
                        //Cho gd_hs_lns_lcd da xoa = Y
                        cho_gd_hs_lns_lcd_da_co_da_xoa_Y();

                        //insert gd_hs_lns_lcd
                        v_us_gd_hs_lns_lcd.BeginTransaction();
                        v_us_gd_hs_lns_lcd.Insert();
                        v_us_gd_hs_lns_lcd.CommitTransaction();

                        //insert gd_hs_lns
                        cho_gd_hs_lns_da_co_da_xoa_Y();
                        v_us_gd_hs_lns.BeginTransaction();
                        v_us_gd_hs_lns.Insert();
                        v_us_gd_hs_lns.CommitTransaction();

                        //insert gd_lcd
                        cho_gd_lcd_da_co_da_xoa_Y();
                        v_us_gd_lcd.BeginTransaction();
                        v_us_gd_lcd.Insert();
                        v_us_gd_lcd.CommitTransaction();
                        break;
                    case DataEntryFormMode.UpdateDataState:
                        break;
                    default:
                        break;
                }
            }
            catch (Exception v_e)
            {
                v_us_gd_hs_lns.Rollback();
                v_us_gd_lcd.Rollback();
                v_us_gd_hs_lns_lcd.Rollback();
                CSystemLog_301.ExceptionHandle(v_e);
            }
        }
        private void cho_gd_hs_lns_lcd_da_co_da_xoa_Y()
        {
            decimal v_id_gd_hs_lns_lcd = 0;
            v_id_gd_hs_lns_lcd = find_id_gd_lns_lcd(CIPConvert.ToDecimal(m_id_gd_hd));

            US_GD_HS_LNS_LCD v_us = new US_GD_HS_LNS_LCD(v_id_gd_hs_lns_lcd);
            v_us.dcID = v_id_gd_hs_lns_lcd;
            v_us.strDA_XOA = "Y";
            try
            {
                v_us.BeginTransaction();
                v_us.Update();
                v_us.CommitTransaction();
            }
            catch (Exception v_e)
            {
                throw v_e;
            }
        }
        private decimal find_id_gd_lns_lcd(decimal ip_dc_id_gd_hd)
        {
            try
            {
                US_GD_HS_LNS_LCD v_us = new US_GD_HS_LNS_LCD();
                DS_GD_HS_LNS_LCD v_ds = new DS_GD_HS_LNS_LCD();

                v_us.FillDataset(v_ds);

                string v_str_filter = "ID_HOP_DONG = " + ip_dc_id_gd_hd + " AND DA_XOA = 'N'";
                DataRow[] v_dr = v_ds.GD_HS_LNS_LCD.Select(v_str_filter);

                if (v_dr.Count() == 0)
                {
                    return -1;
                }
                else
                {
                    return CIPConvert.ToDecimal(v_dr.First()["ID"].ToString());
                }
            }
            catch (Exception v_e)
            {
                throw v_e;
            }
        }
        private decimal find_id_muc_hs_lns_hien_tai(decimal m_id_gd_hs_lns_lcd_hien_tai)
        {
            US_GD_HS_LNS_LCD v_us_gd_hs_lns_lcd = new US_GD_HS_LNS_LCD(m_id_gd_hs_lns_lcd_hien_tai);
            US_DM_HE_SO_LUONG_NS v_us_dm_hs_lns = new US_DM_HE_SO_LUONG_NS(v_us_gd_hs_lns_lcd.dcID_HS_LNS);

            return CIPConvert.ToDecimal(v_us_dm_hs_lns.dcID_MUC_LNS);
        }
        private decimal find_id_muc_lcd_hien_tai(decimal m_id_gd_hs_lns_lcd_hien_tai)
        {
            US_GD_HS_LNS_LCD v_us_gd_hs_lns_lcd = new US_GD_HS_LNS_LCD(m_id_gd_hs_lns_lcd_hien_tai);
            US_DM_LUONG_CHE_DO v_us_dm_lcd = new US_DM_LUONG_CHE_DO(v_us_gd_hs_lns_lcd.dcID_LCD);

            return CIPConvert.ToDecimal(v_us_dm_lcd.dcID_MUC_LCD);
        }
 private void form_2_us_gd_hs_lns_lcd(US_GD_HS_LNS_LCD ip_us)
 {
     try
     {
         ip_us.dcID_HOP_DONG = find_id_gd_hd(CIPConvert.ToDecimal(m_sle_chon_nhan_vien.EditValue)); ;
         //ip_us.dcID_QUYET_DINH =
         ip_us.dcID_HS_LNS = m_id_hs_lns;
         ip_us.dcID_LCD = m_id_lcd;
         if (m_e_form_mode == DataEntryFormMode.InsertDataState)
         {
             ip_us.datNGAY_LAP = DateTime.Now.Date;
             //Nguoi lap
             ip_us.strNGUOI_LAP = CAppContext_201.getCurrentUserName();
         }
         if (m_e_form_mode == DataEntryFormMode.UpdateDataState)
         {
             ip_us.datNGAY_SUA = DateTime.Now.Date;
             //nguoi sua
             ip_us.strNGUOI_SUA = CAppContext_201.getCurrentUserName();
         }
         ip_us.strDA_XOA = "N";
     }
     catch (Exception v_e)
     {
         throw v_e;
     }
 }
        private void cho_gd_hs_lns_lcd_da_xoa_Y()
        {
            decimal v_id_gd_hs_lns_lcd = 0;
            v_id_gd_hs_lns_lcd = find_id_gd_lns_lcd(m_id_gd_hd);
            if (v_id_gd_hs_lns_lcd == -1)
            {
                return;
            }
            US_GD_HS_LNS_LCD v_us = new US_GD_HS_LNS_LCD(v_id_gd_hs_lns_lcd);

            v_us.strDA_XOA = "Y";
            v_us.datNGAY_SUA = DateTime.Now.Date;
            //nguoi sua
            v_us.BeginTransaction();
            v_us.Update();
            v_us.CommitTransaction();
        }
        private void us_obj_2_form(decimal v_id_gd_hd, decimal v_id_gd_lns_lcd)
        {
            US_GD_HOP_DONG v_us_gd_hd = new US_GD_HOP_DONG(v_id_gd_hd);

            if (v_id_gd_lns_lcd != -1)
            {
                US_GD_HS_LNS_LCD v_us_gd_lns_lcd = new US_GD_HS_LNS_LCD(v_id_gd_lns_lcd);
                US_DM_HE_SO_LUONG_NS v_us_dm_hs_lns = new US_DM_HE_SO_LUONG_NS(v_us_gd_lns_lcd.dcID_HS_LNS);
                US_DM_LUONG_CHE_DO v_us_dm_lcd = new US_DM_LUONG_CHE_DO(v_us_gd_lns_lcd.dcID_LCD);
                m_sle_chon_nhan_vien.EditValue = v_us_gd_hd.dcID_NHAN_VIEN;
                m_txt_ma_hd.Text = v_us_gd_hd.strMA_HOP_DONG;
                m_sle_loai_hop_dong.EditValue = v_us_gd_hd.dcID_LOAI_HOP_DONG;
                m_dat_ngay_bat_dau.Value = v_us_gd_hd.datNGAY_BAT_DAU;
                m_dat_ngay_ket_thuc.Value = v_us_gd_hd.datNGAY_KET_THUC;
                m_dat_ngay_ky.Value = v_us_gd_hd.datNGAY_KY_HOP_DONG;

                if (v_us_gd_hd.dcID_LOAI_HOP_DONG == CONST_ID_LOAI_HOP_DONG.HOP_DONG_HOC_VIEC)
                {
                    m_gr_LNS.Enabled = false;
                    m_gr_LCD.Enabled = false;
                }
                else
                {
                    m_sle_chuc_danh_lns.EditValue = v_us_dm_hs_lns.dcID_MA_LNS;
                    m_sle_muc_lns.EditValue = v_us_dm_hs_lns.dcID_MUC_LNS;
                    m_sle_chuc_danh_lcd.EditValue = v_us_dm_lcd.dcID_MA_LCD;
                    m_sle_muc_lcd.EditValue = v_us_dm_lcd.dcID_MUC_LCD;
                }
            }
            else
            {
                m_sle_chon_nhan_vien.EditValue = v_us_gd_hd.dcID_NHAN_VIEN;
                m_txt_ma_hd.Text = v_us_gd_hd.strMA_HOP_DONG;
                m_sle_loai_hop_dong.EditValue = v_us_gd_hd.dcID_LOAI_HOP_DONG;
                m_dat_ngay_bat_dau.Value = v_us_gd_hd.datNGAY_BAT_DAU;
                m_dat_ngay_ket_thuc.Value = v_us_gd_hd.datNGAY_KET_THUC;
                m_dat_ngay_ky.Value = v_us_gd_hd.datNGAY_KY_HOP_DONG;
                if (v_us_gd_hd.dcID_LOAI_HOP_DONG == CONST_ID_LOAI_HOP_DONG.HOP_DONG_HOC_VIEC)
                {
                    m_gr_LNS.Enabled = false;
                    m_gr_LCD.Enabled = false;
                }
            }

            if (m_e_form_mode == DataEntryFormMode.UpdateDataState)
            {

            }
        }
        private void save_data()
        {
            US_GD_HS_LNS_LCD v_us_gd_hs_lns_lcd = new US_GD_HS_LNS_LCD();
            US_GD_HE_SO_LNS v_us_gd_hs_lns = new US_GD_HE_SO_LNS();
            US_GD_LUONG_CHE_DO v_us_gd_lcd = new US_GD_LUONG_CHE_DO();
            US_GD_TRANG_THAI_LAO_DONG v_us_gd_trang_thai_lao_dong = new US_GD_TRANG_THAI_LAO_DONG();
            US_GD_HOP_DONG v_us_gd_hd = new US_GD_HOP_DONG();
            form_2_us_gd_hop_dong(v_us_gd_hd);
            US_GD_HOP_DONG v_us = new US_GD_HOP_DONG();
            switch (m_e_form_mode)
            {
                case DataEntryFormMode.UpdateDataState:
                    v_us_gd_hd.BeginTransaction();
                    v_us_gd_hd.dcID = CIPConvert.ToDecimal(m_grv_lap_hd.GetRowCellValue(m_grv_lap_hd.FocusedRowHandle, "ID"));
                    v_us_gd_hd.Update();
                    v_us_gd_hd.CommitTransaction();

                    //
                    form_2_us_gd_hs_lns_lcd(v_us_gd_hs_lns_lcd);
                    v_us_gd_hs_lns_lcd.BeginTransaction();
                    v_us_gd_hs_lns_lcd.dcID = find_id_gd_lns_lcd(CIPConvert.ToDecimal(m_grv_lap_hd.GetRowCellValue(m_grv_lap_hd.FocusedRowHandle, "ID")));
                    v_us_gd_hs_lns_lcd.Update();
                    v_us_gd_hs_lns_lcd.CommitTransaction();
                    break;
                case DataEntryFormMode.InsertDataState:
                    v_us.lap_hop_dong_moi_cho_nhan_vien(CIPConvert.ToDecimal(m_sle_chon_nhan_vien.EditValue)
                                                        , CIPConvert.ToDecimal(m_sle_loai_hop_dong.EditValue)
                                                        , m_txt_ma_hd.Text.Trim()
                                                        , m_dat_ngay_bat_dau.Value.Date
                                                        , m_dat_ngay_ket_thuc.Value.Date
                                                        , m_dat_ngay_ky.Value.Date
                                                        , DateTime.Now.Date
                                                        , CAppContext_201.getCurrentUserName()
                                                        , "N"
                                                        , CIPConvert.ToDecimal(m_sle_chuc_danh_lcd.EditValue)
                                                        , CIPConvert.ToDecimal(m_sle_muc_lcd.EditValue)
                                                        , CIPConvert.ToDecimal(m_sle_chuc_danh_lns.EditValue)
                                                        , CIPConvert.ToDecimal(m_sle_muc_lns.EditValue)
                                                        , ref op_str_mess);
                    break;
                case DataEntryFormMode.ViewDataState:
                    break;
                case DataEntryFormMode.SelectDataState:
                    break;
                default:
                    break;
            }

            //US_GD_HS_LNS_LCD v_us_gd_hs_lns_lcd = new US_GD_HS_LNS_LCD();
            //US_GD_HE_SO_LNS v_us_gd_hs_lns = new US_GD_HE_SO_LNS();
            //US_GD_LUONG_CHE_DO v_us_gd_lcd = new US_GD_LUONG_CHE_DO();
            //US_GD_TRANG_THAI_LAO_DONG v_us_gd_trang_thai_lao_dong = new US_GD_TRANG_THAI_LAO_DONG();
            //US_GD_HOP_DONG v_us_gd_hd = new US_GD_HOP_DONG();
            //form_2_us_gd_hop_dong(v_us_gd_hd);
            //try
            //{
            //    switch (m_e_form_mode)
            //    {
            //        case DataEntryFormMode.InsertDataState:
            //            if (m_id_gd_hd != -1)
            //            {
            //                cho_hop_dong_da_co_ve_trang_thai_delete_Y();
            //                cho_gd_hs_lns_lcd_da_xoa_Y();
            //                cho_gd_hs_lns_da_xoa_Y();
            //                cho_gd_lcd_da_xoa_Y();
            //            }

            //            //lap hop dong moi
            //            v_us_gd_hd.BeginTransaction();
            //            v_us_gd_hd.Insert();
            //            v_us_gd_hd.CommitTransaction();

            //            //insert gd_hs_lns_lcd
            //            form_2_us_gd_hs_lns_lcd(v_us_gd_hs_lns_lcd);
            //            v_us_gd_hs_lns_lcd.BeginTransaction();
            //            v_us_gd_hs_lns_lcd.Insert();
            //            v_us_gd_hs_lns_lcd.CommitTransaction();

            //            //insert gd_hs_lns
            //            form_2_us_gd_hs_lns(v_us_gd_hs_lns);
            //            v_us_gd_hs_lns.BeginTransaction();
            //            v_us_gd_hs_lns.Insert();
            //            v_us_gd_hs_lns.CommitTransaction();

            //            //insert gd_lcd
            //            form_2_us_gd_lcd(v_us_gd_lcd);
            //            v_us_gd_lcd.BeginTransaction();
            //            v_us_gd_lcd.Insert();
            //            v_us_gd_lcd.CommitTransaction();

            //            //insert gd_trang_thai_ld
            //            decimal v_id_gd_trang_thai_lao_dong_da_co = 0;

            //            v_id_gd_trang_thai_lao_dong_da_co = find_id_trang_thai_lao_dong_da_co(decimal.Parse(m_sle_chon_nhan_vien.EditValue.ToString())); //sai o day

            //            if (v_id_gd_trang_thai_lao_dong_da_co == -1)
            //            {
            //                form_2_us_gd_trang_thai_lao_dong(v_us_gd_trang_thai_lao_dong);
            //                v_us_gd_trang_thai_lao_dong.BeginTransaction();
            //                v_us_gd_trang_thai_lao_dong.Insert();
            //                v_us_gd_trang_thai_lao_dong.CommitTransaction();
            //            }
            //            break;
            //        case DataEntryFormMode.UpdateDataState:
            //            v_us_gd_hd.BeginTransaction();
            //            v_us_gd_hd.dcID = CIPConvert.ToDecimal(m_grv_lap_hd.GetRowCellValue(m_grv_lap_hd.FocusedRowHandle, "ID"));
            //            v_us_gd_hd.Update();
            //            v_us_gd_hd.CommitTransaction();

            //            //
            //            form_2_us_gd_hs_lns_lcd(v_us_gd_hs_lns_lcd);
            //            v_us_gd_hs_lns_lcd.BeginTransaction();
            //            v_us_gd_hs_lns_lcd.dcID = find_id_gd_lns_lcd(CIPConvert.ToDecimal(m_grv_lap_hd.GetRowCellValue(m_grv_lap_hd.FocusedRowHandle, "ID")));
            //            v_us_gd_hs_lns_lcd.Update();
            //            v_us_gd_hs_lns_lcd.CommitTransaction();
            //            break;
            //        default:
            //            break;
            //    }
            //}
            //catch (Exception v_e)
            //{

            //    throw v_e;
            //}
        }
 private void gan_du_lieu_cho_us_gd_hd_detail(DataRow dataRow)
 {
     US_GD_HS_LNS_LCD v_us = new US_GD_HS_LNS_LCD();
     v_us.dcID_HOP_DONG = m_dc_id_hop_dong_moi_tao;
     v_us.dcID_HS_LNS = find_id_lns(CIPConvert.ToDecimal(dataRow["CHUC_DANH_LNS"].ToString()), CIPConvert.ToDecimal(dataRow["MUC_LUONG_NS"].ToString()));
     v_us.dcID_LCD = find_id_lcd(CIPConvert.ToDecimal(dataRow["CHUC_DANH_LCD"].ToString()), CIPConvert.ToDecimal(dataRow["MUC_LCD"].ToString()));
     v_us.strDA_XOA = "N";
     v_us.datNGAY_LAP = DateTime.Now.Date;
     v_us.strNGUOI_LAP = CAppContext_201.getCurrentUserName();
     v_us.Insert();
 }