public IHttpActionResult Get(int id)
        {
            DTO_CUS_HRM_STAFF_NhanSu tbl_CUS_HRM_STAFF_NhanSu = BS_CUS_HRM_STAFF_NhanSu.get_CUS_HRM_STAFF_NhanSu(db, PartnerID, id, true);

            if (tbl_CUS_HRM_STAFF_NhanSu == null)
            {
                return(NotFound());
            }

            return(Ok(tbl_CUS_HRM_STAFF_NhanSu));
        }
        public IHttpActionResult Post(DTO_CUS_HRM_STAFF_NhanSu tbl_CUS_HRM_STAFF_NhanSu)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            DTO_CUS_HRM_STAFF_NhanSu result = BS_CUS_HRM_STAFF_NhanSu.post_CUS_HRM_STAFF_NhanSu(db, PartnerID, tbl_CUS_HRM_STAFF_NhanSu, Username);


            if (result != null)
            {
                return(CreatedAtRoute("get_CUS_HRM_STAFF_NhanSu", new { id = result.ID }, result));
            }
            return(Conflict());
        }
        public IHttpActionResult Put(int id, DTO_CUS_HRM_STAFF_NhanSu tbl_CUS_HRM_STAFF_NhanSu)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != tbl_CUS_HRM_STAFF_NhanSu.ID || PartnerID != tbl_CUS_HRM_STAFF_NhanSu.IDPartner)
            {
                return(BadRequest());
            }

            string checkData = BS_CUS_HRM_STAFF_NhanSu.check_CUS_HRM_STAFF_NhanSu(db, id, tbl_CUS_HRM_STAFF_NhanSu);

            if (!string.IsNullOrEmpty(checkData))
            {
                return(BadRequest(checkData));
            }

            bool   isChangeCode = false;
            string oldCode      = "";
            bool   result       = BS_CUS_HRM_STAFF_NhanSu.put_CUS_HRM_STAFF_NhanSu_Custom(db, PartnerID, id, tbl_CUS_HRM_STAFF_NhanSu, Username, out isChangeCode, out oldCode);

            if (result)
            {
                BS_HelperReference.STAFF_Info_Update(db, id);

                // Đổi code => đổi avt
                if (isChangeCode)
                {
                    string mapPath          = System.Web.HttpContext.Current.Server.MapPath("~/");
                    string uploadPath       = "Uploads/HRM/Staffs/Avatars/" + oldCode + ".jpg";
                    string strDirectoryPath = mapPath + uploadPath;
                    if (System.IO.File.Exists(strDirectoryPath))
                    {
                        string strFilePath = mapPath + "Uploads/HRM/Staffs/Avatars/" + tbl_CUS_HRM_STAFF_NhanSu.Code + ".jpg";
                        System.IO.File.Move(strDirectoryPath, strFilePath);
                    }
                }

                return(StatusCode(HttpStatusCode.NoContent));
            }
            else
            {
                return(NotFound());
            }
        }
        public static string check_CUS_HRM_STAFF_NhanSu(AppEntities db, int id, DTO_CUS_HRM_STAFF_NhanSu item)
        {
            var obj = db.tbl_CUS_HRM_STAFF_NhanSu.Find(id);

            if (obj != null)
            {
                if (obj.IsCNDT == true && item.IsCNDT == false)
                {
                    if (db.tbl_PRO_DeTai.Any(c => c.IDChuNhiem == obj.ID && c.IsDeleted == false))
                    {
                        return("Nhân sự đã tham gia vào dự án có vai trò chủ nhiệm, không thể chỉnh sửa");
                    }
                }
            }

            return(string.Empty);
        }
Beispiel #5
0
        public HttpResponseMessage Post_NhanSu()
        {
            string        fileurl  = "";
            var           package  = SaveImportedFile(out fileurl);
            ExcelWorkbook workBook = package.Workbook;

            if (workBook != null)
            {
                ExcelWorksheet ws        = workBook.Worksheets.FirstOrDefault();
                bool           haveError = false;


                int SheetColumnsCount, SheetRowCount = 0;

                SheetColumnsCount = ws.Dimension.End.Column;    // Find End Column
                SheetRowCount     = ws.Dimension.End.Row;       // Find End Row

                for (int rowid = 3; rowid <= SheetRowCount; rowid++)
                {
                    #region item
                    List <string> row = new List <string>();

                    for (int i = 2; i <= SheetColumnsCount; i++)
                    {
                        row.Add(ws.Cells[rowid, i].Value == null ? "" : ws.Cells[rowid, i].Text);
                    }

                    if (row[1] == "") //check code null
                    {
                        continue;
                    }


                    string code   = row[1];
                    var    dbitem = BS_CUS_HRM_STAFF_NhanSu.get_CUS_HRM_STAFF_NhanSu(db, PartnerID, code);
                    if (dbitem == null)
                    {
                        dbitem = new DTO_CUS_HRM_STAFF_NhanSu();
                    }

                    if (int.TryParse(row[0], out int sort))
                    {
                        dbitem.Sort = sort;
                    }

                    dbitem.Code     = row[1];
                    dbitem.TenDayDu = row[2];

                    if (!string.IsNullOrEmpty(row[3]))
                    {
                        var chucDanh = BS_CUS_HRM_LIST_ChucDanh.get_CUS_HRM_LIST_ChucDanh(db, PartnerID, row[3]);
                        if (chucDanh != null)
                        {
                            dbitem.IDChucDanh = chucDanh.ID;
                        }
                        else
                        {
                        }
                    }

                    dbitem.SoXe = row[5];

                    dbitem.NgaySinh   = row[6];
                    dbitem.NguyenQuan = row[7];
                    dbitem.ThuongTru  = row[8];

                    dbitem.CMND    = row[9];
                    dbitem.NgayCap = row[10];

                    if (row[11] == "1")
                    {
                        dbitem.IsDisabled = true;
                    }



                    //STT Mã nhân viên    Họ và tên Mã công việc    Công việc   5 Xe Ngày sinh 7Nguyên quán Địa chỉ thường trú CMND    Ngày cấp    Đã nghỉ việc



                    try
                    {
                        if (dbitem.ID != 0)
                        {
                            BS_CUS_HRM_STAFF_NhanSu.put_CUS_HRM_STAFF_NhanSu(db, PartnerID, dbitem.ID, dbitem, Username);
                        }
                        else
                        {
                            BS_CUS_HRM_STAFF_NhanSu.post_CUS_HRM_STAFF_NhanSu(db, PartnerID, dbitem, Username);
                        }
                    }
                    catch (Exception ex)
                    {
                        continue;
                    }



                    #endregion
                }


                if (haveError)
                {
                    package.Save();
                    return(downloadFile(fileurl, HttpStatusCode.Conflict));
                }
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
            return(Request.CreateResponse(HttpStatusCode.Created));
        }
        public static DTO_CUS_HRM_STAFF_NhanSu post_CUS_HRM_STAFF_NhanSu(AppEntities db, int PartnerID, DTO_CUS_HRM_STAFF_NhanSu item, string Username)
        {
            tbl_CUS_HRM_STAFF_NhanSu dbitem = new tbl_CUS_HRM_STAFF_NhanSu();

            if (item != null)
            {
                dbitem.IDChucDanh  = item.IDChucDanh;
                dbitem.IDBoPhan    = item.IDBoPhan;
                dbitem.IDRole      = item.IDRole;
                dbitem.Code        = item.Code;
                dbitem.Name        = item.Name;
                dbitem.Remark      = item.Remark;
                dbitem.Sort        = item.Sort;
                dbitem.IsDisabled  = item.IsDisabled;
                dbitem.IsDeleted   = item.IsDeleted;
                dbitem.Ten         = item.Ten;
                dbitem.Ho          = item.Ho;
                dbitem.Email       = item.Email;
                dbitem.SoDienThoai = item.SoDienThoai;
                dbitem.DiaChi      = item.DiaChi;
                dbitem.IsHRCO      = item.IsHRCO;
                dbitem.IsCNDT      = item.IsCNDT;

                dbitem.CreatedBy   = Username;
                dbitem.CreatedDate = DateTime.Now;

                dbitem.ModifiedBy   = Username;
                dbitem.ModifiedDate = DateTime.Now;

                dbitem.IDPartner = PartnerID;


                try
                {
                    db.tbl_CUS_HRM_STAFF_NhanSu.Add(dbitem);
                    db.SaveChanges();

                    BS_CUS_Version.update_CUS_Version(db, dbitem.IDPartner, "DTO_CUS_HRM_STAFF_NhanSu", dbitem.ModifiedDate, Username);



                    item.ID = dbitem.ID;

                    item.CreatedBy   = dbitem.CreatedBy;
                    item.CreatedDate = dbitem.CreatedDate;

                    item.ModifiedBy   = dbitem.ModifiedBy;
                    item.ModifiedDate = dbitem.ModifiedDate;

                    item.IDPartner = dbitem.IDPartner;
                }
                catch (DbEntityValidationException e)
                {
                    errorLog.logMessage("post_CUS_HRM_STAFF_NhanSu", e);
                    item = null;
                }
            }
            return(item);
        }
        public static bool put_CUS_HRM_STAFF_NhanSu(AppEntities db, int PartnerID, int ID, DTO_CUS_HRM_STAFF_NhanSu item, string Username)
        {
            bool result = false;
            var  dbitem = db.tbl_CUS_HRM_STAFF_NhanSu.Find(ID);

            if (dbitem != null)
            {
                dbitem.IDChucDanh  = item.IDChucDanh;
                dbitem.IDBoPhan    = item.IDBoPhan;
                dbitem.IDRole      = item.IDRole;
                dbitem.Code        = item.Code;
                dbitem.Name        = item.Name;
                dbitem.Remark      = item.Remark;
                dbitem.Sort        = item.Sort;
                dbitem.IsDisabled  = item.IsDisabled;
                dbitem.IsDeleted   = item.IsDeleted;
                dbitem.Ten         = item.Ten;
                dbitem.Ho          = item.Ho;
                dbitem.Email       = item.Email;
                dbitem.SoDienThoai = item.SoDienThoai;
                dbitem.DiaChi      = item.DiaChi;
                dbitem.IsHRCO      = item.IsHRCO;
                dbitem.IsCNDT      = item.IsCNDT;

                dbitem.ModifiedBy   = Username;
                dbitem.ModifiedDate = DateTime.Now;

                try
                {
                    db.SaveChanges();

                    BS_CUS_Version.update_CUS_Version(db, dbitem.IDPartner, "DTO_CUS_HRM_STAFF_NhanSu", dbitem.ModifiedDate, Username);


                    result = true;
                }
                catch (DbEntityValidationException e)
                {
                    errorLog.logMessage("put_CUS_HRM_STAFF_NhanSu", e);
                    result = false;
                }
            }
            return(result);
        }
        public async Task <HttpResponseMessage> Post_NhanSu()
        {
            string        fileurl  = "";
            var           package  = SaveImportedFile(out fileurl);
            ExcelWorkbook workBook = package.Workbook;

            if (workBook != null)
            {
                ExcelWorksheet ws        = workBook.Worksheets.FirstOrDefault();
                bool           haveError = false;


                int SheetColumnsCount, SheetRowCount = 0;

                SheetColumnsCount = ws.Dimension.End.Column;    // Find End Column
                SheetRowCount     = ws.Dimension.End.Row;       // Find End Row

                for (int rowid = 3; rowid <= SheetRowCount; rowid++)
                {
                    #region item
                    List <string> row = new List <string>();

                    for (int i = 2; i <= SheetColumnsCount; i++)
                    {
                        row.Add(ws.Cells[rowid, i].Value == null ? "" : ws.Cells[rowid, i].Text);
                    }

                    if (string.IsNullOrEmpty(row[1]) || string.IsNullOrEmpty(row[2]) || string.IsNullOrEmpty(row[4]) || string.IsNullOrEmpty(row[6])) //check validate
                    {
                        continue;
                    }


                    string code   = row[1];
                    var    dbitem = BS_CUS_HRM_STAFF_NhanSu.get_CUS_HRM_STAFF_NhanSu(db, PartnerID, code);
                    if (dbitem == null)
                    {
                        dbitem = new DTO_CUS_HRM_STAFF_NhanSu();
                    }

                    if (int.TryParse(row[0], out int sort))
                    {
                        dbitem.Sort = sort;
                    }

                    dbitem.Code        = row[1];
                    dbitem.Name        = row[2];
                    dbitem.SoDienThoai = row[3];
                    dbitem.Email       = row[4].ToLower();
                    string password = row[5];

                    //update role
                    if (!string.IsNullOrEmpty(row[6]))
                    {
                        var r = BS_CUS_SYS_Role.get_CUS_SYS_Role(db, PartnerID, row[6]);
                        if (r != null)
                        {
                            dbitem.IDRole = r.ID;
                        }
                        else
                        {
                            continue;
                        }
                    }


                    try
                    {
                        if (dbitem.ID != 0)
                        {
                            BS_CUS_HRM_STAFF_NhanSu.put_CUS_HRM_STAFF_NhanSu(db, PartnerID, dbitem.ID, dbitem, Username);
                        }
                        else
                        {
                            BS_CUS_HRM_STAFF_NhanSu.post_CUS_HRM_STAFF_NhanSu(db, PartnerID, dbitem, Username);
                        }


                        //create/update account
                        var  context  = new ApplicationDbContext();
                        var  dbUser   = context.Users.FirstOrDefault(d => d.Email == dbitem.Email);
                        bool isCreate = false;

                        if (dbUser == null && !string.IsNullOrEmpty(password))
                        {
                            isCreate           = true;
                            dbUser             = new ApplicationUser();
                            dbUser.UserName    = dbUser.Email = dbitem.Email;
                            dbUser.CreatedDate = DateTime.UtcNow;
                            dbUser.CreatedBy   = Username;
                            IdentityResult result = await UserManager.CreateAsync(dbUser, password);
                        }

                        if (dbUser != null)
                        {
                            dbUser.FullName    = dbitem.Name;
                            dbUser.Avatar      = string.Format("Uploads/HRM/Staffs/Avatars/{0}.jpg", dbitem.Code);
                            dbUser.PhoneNumber = dbitem.SoDienThoai;
                            dbUser.StaffID     = dbitem.ID;
                            dbUser.PartnerID   = dbitem.IDPartner;

                            context.SaveChanges();
                        }
                        //mail
                        if (isCreate)
                        {
                            string template =
                                @"
                    Xin chào <strong>@Model.FullName</strong>,
                    <br>
                    <br>Bạn vừa được tạo tài khoản truy cập vào hệ thống Quản lý Đề tài Nghiên cứu khoa học.
                    <br>
                    <br>Tài khoản đăng nhập:
                    <br>Email: <strong>@Model.Email</strong>
                    <br>Mật khẩu: <strong>@Model.Password</strong>
                    <br>
                    <br>Vui lòng đăng nhập tại
                    <br><a href='@Model.Domain'>@Model.Domain</a>
                    <br>";

                            var html = Engine.Razor.RunCompile(template, "Register_EmailTemplate", null, new { FullName = dbUser.FullName, Email = dbUser.Email, Password = password, Domain = "http://myduc.appcenter.vn:9003/" });

                            EmailService emailService = new EmailService();
                            //emailService.SendSync(new IdentityMessage() { Subject = "Quản lý Đề tài Nghiên cứu khoa học - thông tin tài khoản", Destination = dbUser.Email, Body = html });
                        }
                        else if (!string.IsNullOrEmpty(password))
                        {
                            UserManager.RemovePassword(dbUser.Id);
                            IdentityResult result = await UserManager.AddPasswordAsync(dbUser.Id, password);
                        }
                    }
                    catch (Exception ex)
                    {
                        log.Error("Import/Post_NhanSu", ex);
                        continue;
                    }



                    #endregion
                }


                if (haveError)
                {
                    package.Save();
                    return(downloadFile(fileurl, HttpStatusCode.Conflict));
                }
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
            return(Request.CreateResponse(HttpStatusCode.Created));
        }