public static DTO_PRO_BaoCaoNangSuatKhoaHoc toDTOItem(tbl_PRO_BaoCaoNangSuatKhoaHoc dbResult)
 {
     if (dbResult != null)
     {
         return(new DTO_PRO_BaoCaoNangSuatKhoaHoc()
         {
             ID = dbResult.ID,
             IDDeTai = dbResult.IDDeTai,
             IDNhom = dbResult.IDNhom,
             IDSite = dbResult.IDSite,
             TenDeTai = dbResult.TenDeTai,
             NgayBaoCao = dbResult.NgayBaoCao,
             TapChiHoiNghi = dbResult.TapChiHoiNghi,
             IsDisabled = dbResult.IsDisabled,
             IsDeleted = dbResult.IsDeleted,
             CreatedDate = dbResult.CreatedDate,
             CreatedBy = dbResult.CreatedBy,
             ModifiedDate = dbResult.ModifiedDate,
             ModifiedBy = dbResult.ModifiedBy,
             IDKinhPhi = dbResult.IDKinhPhi,
             KinhPhi = dbResult.KinhPhi,
             IDNCV = dbResult.IDNCV,
             IsApproved = dbResult.IsApproved,
             ApprovedDate = dbResult.ApprovedDate,
             GhiChuKinhPhi = dbResult.tbl_CAT_KinhPhi.GhiChu,
             IsKinhPhiManual = dbResult.tbl_CAT_KinhPhi.IsManual ?? false
         });
     }
     else
     {
         return(null);
     }
 }
 public static DTO_PRO_BaoCaoNangSuatKhoaHoc toDTO(tbl_PRO_BaoCaoNangSuatKhoaHoc dbResult)
 {
     if (dbResult != null)
     {
         return(new DTO_PRO_BaoCaoNangSuatKhoaHoc()
         {
             ID = dbResult.ID,
             IDDeTai = dbResult.IDDeTai,
             IDNhom = dbResult.IDNhom,
             IDSite = dbResult.IDSite,
             TenDeTai = dbResult.TenDeTai,
             NgayBaoCao = dbResult.NgayBaoCao,
             TapChiHoiNghi = dbResult.TapChiHoiNghi,
             IsDisabled = dbResult.IsDisabled,
             IsDeleted = dbResult.IsDeleted,
             CreatedDate = dbResult.CreatedDate,
             CreatedBy = dbResult.CreatedBy,
             ModifiedDate = dbResult.ModifiedDate,
             ModifiedBy = dbResult.ModifiedBy,
             IDKinhPhi = dbResult.IDKinhPhi,
             KinhPhi = dbResult.KinhPhi,
             IDNCV = dbResult.IDNCV,
             IsApproved = dbResult.IsApproved,
             ApprovedDate = dbResult.ApprovedDate,
             FormConfig = dbResult.FormConfig,
         });
     }
     else
     {
         return(null);
     }
 }
        public static DTO_PRO_BaoCaoNangSuatKhoaHoc post_PRO_BaoCaoNangSuatKhoaHoc(AppEntities db, DTO_PRO_BaoCaoNangSuatKhoaHoc item, string Username)
        {
            tbl_PRO_BaoCaoNangSuatKhoaHoc dbitem = new tbl_PRO_BaoCaoNangSuatKhoaHoc();

            if (item != null)
            {
                dbitem.IDDeTai       = item.IDDeTai;
                dbitem.IDNhom        = item.IDNhom;
                dbitem.IDSite        = item.IDSite;
                dbitem.TenDeTai      = item.TenDeTai;
                dbitem.NgayBaoCao    = item.NgayBaoCao;
                dbitem.TapChiHoiNghi = item.TapChiHoiNghi;
                dbitem.IsDisabled    = item.IsDisabled;
                dbitem.IsDeleted     = item.IsDeleted;
                dbitem.IDKinhPhi     = item.IDKinhPhi;
                dbitem.KinhPhi       = item.KinhPhi;
                dbitem.IDNCV         = item.IDNCV;
                dbitem.IsApproved    = item.IsApproved;
                dbitem.ApprovedDate  = item.ApprovedDate;
                dbitem.FormConfig    = item.FormConfig;

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

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


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

                    BS_CUS_Version.update_CUS_Version(db, null, "DTO_PRO_BaoCaoNangSuatKhoaHoc", DateTime.Now, Username);


                    item.ID = dbitem.ID;

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

                    item.ModifiedBy   = dbitem.ModifiedBy;
                    item.ModifiedDate = dbitem.ModifiedDate;
                }
                catch (DbEntityValidationException e)
                {
                    errorLog.logMessage("post_PRO_BaoCaoNangSuatKhoaHoc", e);
                    item = null;
                }
            }
            return(item);
        }
        public static string updateStatus_PRO_BaoCaoNangSuatKhoaHoc(AppEntities db, int ID, string ActionCode, string Username)
        {
            tbl_PRO_BaoCaoNangSuatKhoaHoc dbitem = db.tbl_PRO_BaoCaoNangSuatKhoaHoc.Find(ID);

            if (dbitem != null)
            {
                #region Duyệt
                if (ActionCode == "Approved")
                {
                    if (dbitem.IsApproved == false)
                    {
                        dbitem.IsApproved   = true;
                        dbitem.ApprovedDate = DateTime.Now;
                        db.SaveChanges();
                    }
                    else
                    {
                        return("Chi phí đã được duyệt trước đó");
                    }
                }
                #endregion

                #region Hủy Duyệt
                if (ActionCode == "UnApproved")
                {
                    if (dbitem.IsApproved == true)
                    {
                        dbitem.IsApproved = false;
                        db.SaveChanges();
                    }
                    else
                    {
                        return("Chi phí chưa duyệt, không thể hủy");
                    }
                }
                #endregion
            }

            return(string.Empty);
        }
        public static DTO_PRO_BaoCaoNangSuatKhoaHoc post_PRO_BaoCaoNangSuatKhoaHocCustom(AppEntities db, int StaffID, DTO_PRO_BaoCaoNangSuatKhoaHoc item, string Username)
        {
            tbl_PRO_BaoCaoNangSuatKhoaHoc dbitem = new tbl_PRO_BaoCaoNangSuatKhoaHoc();

            if (item != null)
            {
                item.Error           = string.Empty;
                dbitem.IDDeTai       = item.IDDeTai;
                dbitem.IDNhom        = item.IDNhom;
                dbitem.IDSite        = item.IDSite;
                dbitem.TenDeTai      = item.TenDeTai;
                dbitem.NgayBaoCao    = item.NgayBaoCao;
                dbitem.TapChiHoiNghi = item.TapChiHoiNghi;
                dbitem.IsDisabled    = item.IsDisabled;
                dbitem.IsDeleted     = item.IsDeleted;
                dbitem.IDKinhPhi     = item.IDKinhPhi;
                dbitem.KinhPhi       = item.KinhPhi;
                dbitem.IDNCV         = StaffID;

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

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

                string sKey   = SYSConfigCode.ThoiGianBaoCaoNSKH.ToString();
                var    config = db.tbl_SYS_Config.FirstOrDefault(c => c.Code == sKey && !c.IsDeleted);
                if (config != null)
                {
                    try
                    {
                        var setting = Newtonsoft.Json.JsonConvert.DeserializeObject <DTO_SYS_Config_ThoiGianBaoCaoNSKH>(config.Value);
                        if (setting != null && setting.NgayBatDau.HasValue && setting.NgayKetThuc.HasValue)
                        {
                            int NgayBatDau  = setting.NgayBatDau.Value.Day;
                            int NgayKetThuc = setting.NgayKetThuc.Value.Day;
                            if (dbitem.CreatedDate.Day < NgayBatDau || dbitem.CreatedDate.Day > NgayKetThuc)
                            {
                                item.Error = "Đã hết thời hạn được báo cáo, thời hạn báo cáo cho phép từ ngày " + NgayBatDau + " đến ngày " + NgayKetThuc + " hằng tháng";
                            }
                        }
                    }
                    catch { }
                }

                if (string.IsNullOrEmpty(item.Error))
                {
                    var kinhphi = db.tbl_CAT_KinhPhi.FirstOrDefault(c => c.ID == item.IDKinhPhi);
                    if (kinhphi != null && kinhphi.IsManual != true)
                    {
                        DateTime dt      = item.NgayBaoCao;
                        var      banggia = db.tbl_CAT_BangGiaKinhPhi.Where(c => c.IDKinhPhi == item.IDKinhPhi && c.NgayHieuLuc <= dt).OrderByDescending(c => c.NgayHieuLuc).FirstOrDefault();
                        if (banggia != null)
                        {
                            dbitem.KinhPhi = banggia.Gia;
                        }
                    }

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

                        BS_CUS_Version.update_CUS_Version(db, null, "DTO_PRO_BaoCaoNangSuatKhoaHoc", DateTime.Now, Username);


                        item.ID = dbitem.ID;

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

                        item.ModifiedBy   = dbitem.ModifiedBy;
                        item.ModifiedDate = dbitem.ModifiedDate;
                    }
                    catch (DbEntityValidationException e)
                    {
                        errorLog.logMessage("post_PRO_BaoCaoNangSuatKhoaHoc", e);
                        item = null;
                    }
                }
            }
            return(item);
        }