private void save_data(ENUM_CONFIRM_LUU_BANG_LUONG ip_confirm_save)
{
SplashScreenManager.ShowForm(this, typeof(SplashScreen1), true, true, false);
string v_str_msg = "";
try
{
if(ip_confirm_save == ENUM_CONFIRM_LUU_BANG_LUONG.NONE)
{
XtraMessageBox.Show("Bạn đã hủy thao tác!", "THÔNG BÁO", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if(!kiem_tra_du_lieu_nhan_vien_truoc_khi_luu())
{
var v_dc_so_nv_khong_co_trong_csdl = m_lst_nhan_vien_khong_ton_tai.Count;
XtraMessageBox.Show("Có " + v_dc_so_nv_khong_co_trong_csdl + " mã nhân viên không có trong phần mềm. Bạn lưu danh sách vào nhé!");
xuat_excel_nhan_vien_chua_co_trong_csdl();
return;
}
//US_RPT_LUONG_V2 v_us_rpt_luong_v2 = new US_RPT_LUONG_V2();
DTO_BANG_LUONG_V2 v_dto_bang_luong_v2 = new DTO_BANG_LUONG_V2();
var v_i_row_count = m_grv_main.RowCount;
if(ip_confirm_save == ENUM_CONFIRM_LUU_BANG_LUONG.NONE)
{
XtraMessageBox.Show("Bảng lương chưa được lưu!", "THÔNG BÁO", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if(ip_confirm_save == ENUM_CONFIRM_LUU_BANG_LUONG.TINH_LAI_TOAN_BO)
{
TinhLuongQL.Instance.XoaToanBoBangLuong(lay_thang(), lay_nam());
}
int v_i_so_luong_ghi_moi = 0;
int v_i_so_luong_ghi_de = 0;
for(int v_i_row = 0; v_i_row < v_i_row_count; v_i_row++)
{
v_dto_bang_luong_v2 = (DTO_BANG_LUONG_V2)m_grv_main.GetRow(v_i_row);
//v_us_rpt_luong_v2 = transfer_dto_2_us_object(v_dto_bang_luong_v2);
var v_bol_nv_co_trong_bang_luong_chua = TinhLuongQL.Instance.KiemTraNhanVienCoTrongBangLuongChua(v_dto_bang_luong_v2);
switch(ip_confirm_save)
{
case ENUM_CONFIRM_LUU_BANG_LUONG.TINH_LAI_TOAN_BO:
TinhLuongQL.Instance.InsertBanGhiLuongNhanVien(v_dto_bang_luong_v2);
v_i_so_luong_ghi_moi = v_i_so_luong_ghi_moi + 1;
break;
case ENUM_CONFIRM_LUU_BANG_LUONG.CHUA_CO_THI_GHI_MOI_DA_CO_THI_KHONG_LAM_GI:
if(!v_bol_nv_co_trong_bang_luong_chua)
{
TinhLuongQL.Instance.InsertBanGhiLuongNhanVien(v_dto_bang_luong_v2);
v_i_so_luong_ghi_moi = v_i_so_luong_ghi_moi + 1;
}
break;
case ENUM_CONFIRM_LUU_BANG_LUONG.CHUA_CO_THI_GHI_MOI_DA_CO_THI_GHI_DE:
if(!v_bol_nv_co_trong_bang_luong_chua)
{
TinhLuongQL.Instance.InsertBanGhiLuongNhanVien(v_dto_bang_luong_v2);
v_i_so_luong_ghi_moi = v_i_so_luong_ghi_moi + 1;
}
else
{
TinhLuongQL.Instance.ReplaceBanGhiLuongNhanVien(v_dto_bang_luong_v2);
v_i_so_luong_ghi_de = v_i_so_luong_ghi_de + 1;
}
break;
case ENUM_CONFIRM_LUU_BANG_LUONG.CHUA_CO_THI_KHONG_LAM_GI_DA_CO_THI_GHI_DE:
if(v_bol_nv_co_trong_bang_luong_chua)
{
TinhLuongQL.Instance.ReplaceBanGhiLuongNhanVien(v_dto_bang_luong_v2);
v_i_so_luong_ghi_de = v_i_so_luong_ghi_de + 1;
}
break;
default:
throw new Exception("Chưa gán giá trị cho ENUM_CONFIRM_LUU_BANG_LUONG!");
}
//m_prb.EditValue = (int)((decimal)v_i_row / (decimal)v_i_row_count * 100);
SplashScreenManager.Default.SendCommand(SplashScreen1.SplashScreenCommand.SetProgress, (int)((decimal)v_i_row / (decimal)v_i_row_count * 100));
//progressBarControl1.EditValue = (int)((decimal)v_i_row / (decimal)v_i_row_count * 100);
}
v_str_msg = "Lưu dữ liệu lương thành công. Có " + v_i_so_luong_ghi_moi + " bản ghi lương nhân viên mới, có " + v_i_so_luong_ghi_de + " bản ghi lương nhân viên ghi đè!";
}
catch(Exception)
{
throw;
}
finally
{
SplashScreenManager.CloseForm(false);
}
XtraMessageBox.Show(v_str_msg, "THÔNG BÁO", MessageBoxButtons.OK, MessageBoxIcon.Information);
hien_thi_thong_tin_bang_luong();
}