Пример #1
0
 public async Task CreateDuAn(DuAn duAn)
 {
     await _duAnRepository.AddAsync(duAn);
 }
 public void ExcelAction(IEnumerable <HangMuc> hangmuc, IEnumerable <ThamGia> thamgia, ExcelWorksheet exs, DuAn duan, int loaiDA)
 {
     this.SetHeader(exs, loaiDA);
     this.GenerateInfoProject(duan, exs, loaiDA);
     this.GenerateContent(hangmuc, thamgia, exs, loaiDA);
 }
        public void AutoAdd()
        {
            //Ngày đầu tiên của tháng mới bắt đầu tính lương
            if (DateTime.Now.IsFirstDayOfMonth() != false)
            {
                return;
            }
            foreach (NhanVienCongViec nhanVienCongViec in myData.NhanVienCongViecs.ToList())
            {
                bool add = true;
                //Không tính lương cho nhân viến quá 2 lần
                foreach (LuongThang lt in myData.LuongThangs.ToList())
                {
                    if (lt.NhanVienId == nhanVienCongViec.NhanVienId &&
                        ((DateTime)lt.NgayTinhLuong).EqualTo(DateTime.Now.FirstDayOfMonth()) == true)
                    {
                        add = false;
                        break;
                    }
                }
                if (add == false)
                {
                    break;
                }

                //Chỉ tính lương cho nhân viên có
                //ngày bắt đầu trước hôm nay và
                //ngày kết thúc băng null hoặc sau ngày đầu tiên của tháng trước
                if (((DateTime)nhanVienCongViec.NgayBatDau).Before(DateTime.Now) &&
                    (nhanVienCongViec.NgayKetThuc == null || ((DateTime)nhanVienCongViec.NgayKetThuc).After(DateTime.Now.FirstDayOfPreviousMonth())))
                {
                    LuongThang luongThang = new LuongThang();

                    //Tao id
                    int max = 0;
                    List <LuongThang> luongThangs = myData.LuongThangs.ToList();
                    foreach (LuongThang lt in luongThangs)
                    {
                        if (int.Parse(lt.LuongThangId) > max)
                        {
                            max = int.Parse(lt.LuongThangId);
                        }
                    }

                    luongThang.LuongThangId = "" + (max + 1);
                    luongThang.NhanVienId   = nhanVienCongViec.NhanVienId;
                    luongThang.LuongCoBan   = myData.HopDongs.ToList().Find(x => x.NhanVienId == luongThang.NhanVienId && x.TrangThai == 1) != null?
                                              myData.HopDongs.ToList().Find(x => x.NhanVienId == luongThang.NhanVienId && x.TrangThai == 1).LuongCanBan : "0";

                    string chucVuId = myData.NhanViens.ToList().Find(x => x.NhanVienId == luongThang.NhanVienId).ChucVuId;
                    luongThang.HSChucVu   = myData.ChucVus.ToList().Find(x => x.ChucVuId == chucVuId).HSChucVu;
                    luongThang.HSCongViec = nhanVienCongViec.HSCongViec;
                    DateTime ngayBatDauLamCuaThangTruoc = ((DateTime)nhanVienCongViec.NgayBatDau).After(DateTime.Now.FirstDayOfPreviousMonth()) ?
                                                          (DateTime)nhanVienCongViec.NgayBatDau : DateTime.Now.FirstDayOfPreviousMonth();
                    DateTime ngayKetThucLamCuaThangTruoc = nhanVienCongViec.NgayKetThuc == null?DateTime.Now.FirstDayOfPreviousMonth().LastDayOfMonth() :
                                                               (DateTime)nhanVienCongViec.NgayKetThuc;

                    luongThang.SoNgayLam           = 0;
                    luongThang.SoNgayNghiCoPhep    = 0;
                    luongThang.SoNgayNghiKhongPhep = 0;
                    luongThang.SoNgayNghiOm        = 0;
                    luongThang.ThuongLe            = "0";

                    foreach (BangChamCong bangChamCong in myData.BangChamCongs.ToList())
                    {
                        //Đếm số ngày làm việc của
                        //nhân viên đang xét và
                        //ngày làm việc phải nằm trong đoạn [ngayBatDauLamCuaThangTruoc, ngayKetThucLamCuaThangTruoc]
                        //nếu có trạng thái là tt1 => soNgayLam
                        //nếu có trạng thái là tt2 => SoNgayNghiCoPhep
                        //nếu có trạng thái là tt3 => SoNgayNghiKhongPhep
                        //nếu có trạng thái là tt4 => SoNgayNghiOm
                        //nếu có ngày làm trùng vs ngày lễ => có tiền thưởng
                        if (luongThang.NhanVienId == bangChamCong.NhanVienId && (
                                bangChamCong.NgayLamViec.EqualTo(ngayBatDauLamCuaThangTruoc) ||
                                (bangChamCong.NgayLamViec.After(ngayBatDauLamCuaThangTruoc) && bangChamCong.NgayLamViec.Before(ngayKetThucLamCuaThangTruoc)) ||
                                bangChamCong.NgayLamViec.EqualTo(ngayKetThucLamCuaThangTruoc)))
                        {
                            //Tính số ngày làm, nghỉ
                            if (bangChamCong.TrangThaiChamCongId == "tt1")
                            {
                                luongThang.SoNgayLam++;
                            }
                            else
                            {
                                if (bangChamCong.TrangThaiChamCongId == "tt2")
                                {
                                    luongThang.SoNgayNghiCoPhep++;
                                }
                                else
                                {
                                    if (bangChamCong.TrangThaiChamCongId == "tt3")
                                    {
                                        luongThang.SoNgayNghiKhongPhep++;
                                    }
                                    else
                                    {
                                        if (bangChamCong.TrangThaiChamCongId == "tt4")
                                        {
                                            luongThang.SoNgayNghiOm++;
                                        }
                                    }
                                }
                            }
                            //Tính tiền thưởng
                            foreach (ThuongLe thuongLe in myData.ThuongLes.ToList())
                            {
                                if (((DateTime)thuongLe.NgayLe).EqualTo(bangChamCong.NgayLamViec))
                                {
                                    luongThang.ThuongLe = "" + (long.Parse(luongThang.ThuongLe) + long.Parse(thuongLe.TienThuongLe));
                                }
                            }
                        }
                    }

                    luongThang.PhuCapNhanVien = "" + 0;
                    foreach (NhanVienPhuCap nhanVienPhuCap in myData.NhanVienPhuCaps.ToList())
                    {
                        if (nhanVienPhuCap.NhanVienId == luongThang.NhanVienId)
                        {
                            PhuCap phuCap = myData.PhuCaps.ToList().Find(x => x.PhuCapId == nhanVienPhuCap.PhuCapId);
                            luongThang.PhuCapNhanVien = "" + (long.Parse(luongThang.PhuCapNhanVien) + long.Parse(phuCap.TienPhuCap));
                        }
                    }

                    luongThang.PhuCapChucVu = myData.ChucVus.ToList().Find(x => x.ChucVuId == myData.NhanViens.ToList()
                                                                           .Find(y => y.NhanVienId == luongThang.NhanVienId).ChucVuId).TienPhuCapChucVu;
                    //Tính hệ số thâm niên
                    DateTime ngayDauTienDiLam = DateTime.Now;
                    foreach (NhanVienCongViec nvcv in myData.NhanVienCongViecs.ToList())
                    {
                        if (luongThang.NhanVienId == nvcv.NhanVienId)
                        {
                            if (ngayDauTienDiLam.After((DateTime)nvcv.NgayBatDau))
                            {
                                ngayDauTienDiLam = (DateTime)nvcv.NgayBatDau;
                            }
                        }
                    }
                    luongThang.PhuCapThamNien = ((int)(DateTime.Now - ngayDauTienDiLam).Days / 365) * 0.1;
                    luongThang.TienDuAn       = "" + 0;
                    foreach (NhanVienDuAn nhanVienDuAn in myData.NhanVienDuAns.ToList())
                    {
                        if (nhanVienDuAn.NhanVienId == luongThang.NhanVienId)
                        {
                            DuAn duAn = myData.DuAns.ToList().Find(x => x.DuAnId == nhanVienDuAn.DuAnId);
                            if (((DateTime)duAn.NgayKetThuc).After(DateTime.Now.FirstDayOfPreviousMonth()) &&
                                ((DateTime)duAn.NgayKetThuc).Before(DateTime.Now.FirstDayOfPreviousMonth().LastDayOfMonth()))
                            {
                                luongThang.TienDuAn = "" + (long.Parse(luongThang.TienDuAn) + (nhanVienDuAn.PhanTramCV * long.Parse(duAn.ThuongDuAn) / 100));
                            }
                        }
                    }
                    luongThang.NgayTinhLuong = DateTime.Now.FirstDayOfMonth();
                    long luongMotNgay = long.Parse(luongThang.LuongCoBan) * (long)(1.0 + (double)luongThang.HSChucVu + (double)luongThang.HSCongViec + (double)luongThang.PhuCapThamNien) / 26;
                    luongThang.LuongThucLanh = "" + ((long)(luongMotNgay * (int)luongThang.SoNgayLam) + long.Parse(luongThang.ThuongLe)
                                                     + long.Parse(luongThang.TienDuAn) + long.Parse(luongThang.PhuCapNhanVien));

                    //Lưu vào database
                    myData.LuongThangs.Add(luongThang);
                    myData.SaveChanges();
                }
            }
        }
Пример #4
0
        public DuAnDTO FindById(string id)
        {
            DuAn duAn = duAnAc.FindById(id);

            return(duAn.ToDTO(nhanVienDuAnAc.ToList().FindAll(x => x.DuAnId == duAn.DuAnId).Count));
        }
        public void GenerateInfoProject(DuAn duan, ExcelWorksheet exs, int loaiDA)
        {
            exs.Cells["C3:M3"].Value = duan.TenDuAn;
            exs.Cells["C4:M4"].Value = duan.KhachHang.TenKhach;
            exs.Cells["C5:G5"].Value = string.Format("{0:n0}", Math.Round((double)duan.GiaTriHopDong));
            exs.Cells["C6:G6"].Value = duan.NgayKetThuc - duan.NgayBatDau;
            exs.Cells["C7:G7"].Value = duan.NgayHoanThanh - duan.NgayBatDau;
            exs.Cells["C8:G8"].Value = duan.SoHopDong;
            exs.Cells["C9:G9"].Value = duan.NgayKy;
            exs.Cells["I5"].Value    = duan.LoaiCongTrinh;
            exs.Cells["I6"].Value    = duan.TyLeTheoDT.ToString("0") + "%";
            exs.Cells["I8"].Value    = string.Format("{0:N0}", duan.TongChiQL) + "%";

            exs.Cells["C3:M3"].Merge = true;
            exs.Cells["C4:M4"].Merge = true;
            exs.Cells["C5:G5"].Merge = true;
            exs.Cells["C6:G6"].Merge = true;
            exs.Cells["C8:G8"].Merge = true;
            exs.Cells["C9:G9"].Merge = true;
            exs.Cells["C9:G9"].Style.Numberformat.Format  = "dd/MM/yyyy";
            exs.Cells["A3:S11"].Style.Border.Left.Style   = ExcelBorderStyle.Thin;
            exs.Cells["A3:S11"].Style.Border.Right.Style  = ExcelBorderStyle.Thin;
            exs.Cells["A3:S11"].Style.Border.Top.Style    = ExcelBorderStyle.Thin;
            exs.Cells["A3:S11"].Style.Border.Bottom.Style = ExcelBorderStyle.Thin;
            exs.Cells["C5:G9"].Style.HorizontalAlignment  = OfficeOpenXml.Style.ExcelHorizontalAlignment.Center;

            var k6 = (duan.GiaTriHopDong * duan.TyLeTheoDT) / 100;
            var k8 = k6 - duan.LuongThueNgoai;

            if (loaiDA.Equals(1))
            {
                exs.Cells["I9"].Value  = Convert.ToInt32(duan.LuongGTQgt) + " %";
                exs.Cells["I10"].Value = Convert.ToInt32(duan.LuongGTV21) + " %";
                exs.Cells["I11"].Value = Convert.ToInt32(duan.LuongGTV22) + " %";
                var k9  = (k8 * duan.LuongGTQgt) / 100;
                var k10 = (k9 * duan.LuongGTV21) / 100;
                var k11 = (k9 * duan.LuongGTV22) / 100;
                exs.Cells["K6"].Value  = string.Format("{0:n0}", Math.Round((double)k6));
                exs.Cells["K7"].Value  = string.Format("{0:n0}", Math.Round((double)duan.LuongThueNgoai));
                exs.Cells["K8"].Value  = string.Format("{0:n0}", Math.Round((double)k8));
                exs.Cells["K9"].Value  = string.Format("{0:n0}", Math.Round((double)k9));
                exs.Cells["K10"].Value = string.Format("{0:n0}", Math.Round((double)k10));
                exs.Cells["K11"].Value = string.Format("{0:n0}", Math.Round((double)k11));
                exs.Cells["P8"].Value  = string.Format("{0:n0}", Math.Round((double)(duan.TongDiemGT != null ? duan.TongDiemGT : 0))) + " đ";
                exs.Cells["P9"].Value  = string.Format("{0:n0}", Math.Round((double)(duan.DonGiaDiemGT != null ? duan.TongDiemGT : 0))) + " đ";
            }
            else
            {
                exs.Cells["I9"].Value  = Convert.ToInt32(duan.LuongTTQtt) + " %";
                exs.Cells["I10"].Value = Convert.ToInt32(duan.LuongDPQdp) + " %";
                exs.Cells["K6"].Value  = string.Format("{0:n0}", Math.Round((double)k6));
                exs.Cells["K7"].Value  = string.Format("{0:n0}", Math.Round((double)duan.LuongThueNgoai));

                var QL2 = (k8 * duan.LuongTTQtt) / 100;
                var QL3 = (k8 * duan.LuongDPQdp) / 100;

                exs.Cells["K8"].Value  = string.Format("{0:n0}", Math.Round((double)k8));
                exs.Cells["K9"].Value  = string.Format("{0:n0}", Math.Round((double)QL2));
                exs.Cells["K10"].Value = string.Format("{0:n0}", Math.Round((double)QL3));

                exs.Cells["P8"].Value = string.Format("{0:n0}", Math.Round((double)duan.TongDiemTT)) + " đ";
                exs.Cells["P9"].Value = string.Format("{0:n0}", Math.Round((double)duan.DonGiaDiemTT)) + " đ";
            }
        }
        public ActionResult Save(DuAn duAn)
        {
            if (!ModelState.IsValid)
            {
                //var errors = ModelState.Values.SelectMany(v => v.Errors);
                var viewModel = new DuAnViewModel
                {
                    LoaiDuAns       = _context.LoaiDuAns.ToList(),
                    TinhThanhPhos   = _context.TinhThanhPhos.ToList(),
                    QuanHuyens      = _context.QuanHuyens.ToList(),
                    TrangThaiDuAn   = SelectOptions.getTrangThaiDuAn,
                    DoanhNghiepBDSs = _context.DoanhNghiepBDSs.ToList()
                };
                return(View("DuAnForm", viewModel));
            }

            if (duAn.ImageFile != null)
            {
                string uploadPath = ConfigurationManager.AppSettings["AnhDaiDienDuAn"].ToString();
                duAn.AnhDaiDien = saveFile(duAn.ImageFile, uploadPath);
            }
            else
            {
                string uploadPath = ConfigurationManager.AppSettings["NoPhoto"].ToString();
                duAn.AnhDaiDien = uploadPath + "no-photo-available-300x225.png";
            }

            duAn.GioiThieuDuAn = HttpUtility.HtmlDecode(duAn.GioiThieuDuAn);
            duAn.ViTri         = HttpUtility.HtmlDecode(duAn.ViTri);
            duAn.HaTang        = HttpUtility.HtmlDecode(duAn.HaTang);
            duAn.ThietKe       = HttpUtility.HtmlDecode(duAn.ThietKe);
            duAn.MatBang       = HttpUtility.HtmlDecode(duAn.MatBang);
            duAn.Media         = HttpUtility.HtmlDecode(duAn.Media);
            duAn.HoTroTaiChinh = HttpUtility.HtmlDecode(duAn.HoTroTaiChinh);

            if (duAn.Id == 0)
            {
                var userId    = User.Identity.GetUserId();
                var nguoiDang = _context.NhanViens.SingleOrDefault(x => x.AccountId == userId);
                duAn.NguoiDangId    = nguoiDang.Id;
                duAn.NgayDang       = DateTime.Now;
                TempData["success"] = "Thêm mới thành công";
                _context.DuAns.Add(duAn);
            }
            else
            {
                var duAnInDb = _context.DuAns.Single(x => x.Id == duAn.Id);
                duAnInDb.TenDuAn          = duAn.TenDuAn;
                duAnInDb.DiaChi           = duAn.DiaChi;
                duAnInDb.GiaTu            = duAn.GiaTu;
                duAnInDb.ChuDauTu         = duAn.ChuDauTu;
                duAnInDb.DoanhNghiepBDSId = duAn.DoanhNghiepBDSId;
                duAnInDb.TongDienTich     = duAn.TongDienTich;
                duAnInDb.TienDoDuAn       = duAn.TienDoDuAn;
                duAnInDb.QuyMoDuAn        = duAn.QuyMoDuAn;
                duAnInDb.GioiThieuDuAn    = duAn.GioiThieuDuAn;
                duAnInDb.ViTri            = duAn.ViTri;
                duAnInDb.HaTang           = duAn.HaTang;
                duAnInDb.ThietKe          = duAn.ThietKe;
                duAnInDb.MatBang          = duAn.MatBang;
                duAnInDb.Media            = duAn.Media;
                duAnInDb.HoTroTaiChinh    = duAn.HoTroTaiChinh;
                duAnInDb.SoSanPham        = duAn.SoSanPham;
                duAnInDb.LoaiDuAnId       = duAn.LoaiDuAnId;
                duAnInDb.TinhThanhPhoId   = duAn.TinhThanhPhoId;
                duAnInDb.QuanHuyenId      = duAn.QuanHuyenId;
                duAnInDb.TrangThai        = duAn.TrangThai;
                if (!string.IsNullOrEmpty(duAn.AnhDaiDien))
                {
                    // Xóa ảnh cũ
                    deleteFile(duAnInDb.AnhDaiDien);
                    // Thay bằng ảnh mới
                    duAnInDb.AnhDaiDien = duAn.AnhDaiDien;
                }
                TempData["success"] = "Cập nhật thành công";
            }
            _context.SaveChanges();

            return(RedirectToAction("Index", "QuanLyDuAn"));
        }
Пример #7
0
 public void Update(DuAn duAn)
 {
     _duAnRepository.Update(duAn);
 }
Пример #8
0
 public DuAn Add(DuAn duAn)
 {
     return(_duAnRepository.Add(duAn));
 }
        public ActionResult Edit(DuAn obj, InfoDuAn[] InfoDuAn, int IDAddress1, int IDAddress2, int IDAddress3, HttpPostedFileBase[] Image)
        {
            if (obj.IDDuAn == 0)
            {
                db.DuAns.Add(obj);
                db.SaveChanges();

                InfoDuAn.ToList().ForEach(q =>
                {
                    q.IDDuAn = obj.IDDuAn;
                    db.InfoDuAns.Add(q);
                });
                db.AddressDuAns.Add(new AddressDuAn
                {
                    IDDuAn    = obj.IDDuAn,
                    IDAddress = IDAddress1,
                });
                db.AddressDuAns.Add(new AddressDuAn
                {
                    IDDuAn    = obj.IDDuAn,
                    IDAddress = IDAddress2,
                });
                db.AddressDuAns.Add(new AddressDuAn
                {
                    IDDuAn    = obj.IDDuAn,
                    IDAddress = IDAddress3,
                });
            }
            else
            {
                db.Entry(obj).State = System.Data.Entity.EntityState.Modified;
                InfoDuAn.ToList().ForEach(q =>
                {
                    if (q.IDInfoDuAn > 0)
                    {
                        if (db.InfoDuAns.FirstOrDefault(a => a.IDInfoDuAn == q.IDInfoDuAn) is InfoDuAn ob)
                        {
                            if (q.Value == null)
                            {
                                db.InfoDuAns.Remove(ob);
                            }
                            else
                            {
                                ob.Value = q.Value;
                            }
                        }
                    }
                    else if (q.Value != null && q.IDInfoDuAn == 0)
                    {
                        db.InfoDuAns.Add(q);
                    }
                });
            }

            foreach (var item in this.RequestAndSaveImage(true))
            {
                db.ImageDuAns.Add(new ImageDuAn
                {
                    IDDuAn      = obj.IDDuAn,
                    Link        = item,
                    IDImageDuAn = 0,
                    Rank        = 0
                });
            }

            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #10
0
        private void btnSuaDuAn_Click(object sender, EventArgs e)
        {
            if (this.txtTenDuAn.Text.Trim().Length <= 0 || this.txtMaDuAn.Text.Trim().Length <= 0 || this.dateNgayDuKienHoanThanh.Value > DateTime.Now || this.dateTimeBatDauDuAn.Value > DateTime.Now || this.dateNgayDuKienHoanThanh.Value > DateTime.Now)
            {
                if (this.txtMaDuAn.Text.Trim().Length <= 0)
                {
                    this.errorProvider1.SetError(this.txtMaDuAn, "Ma du an khong duoc trong");
                    return;
                }
                this.errorProvider1.Clear();
                if (this.txtTenDuAn.Text.Trim().Length <= 0)
                {
                    this.errorProvider1.SetError(this.txtTenDuAn, "nhap ten du an");
                    return;
                }
                else
                {
                    this.errorProvider1.Clear();
                }
                if (this.dateTimeBatDauDuAn.Value <= DateTime.Now)
                {
                    this.errorProvider1.SetError(this.dateTimeBatDauDuAn, "nhap ngay bat dau");
                    return;
                }
                else
                {
                    this.errorProvider1.Clear();
                }
                if (this.dateNgayDuKienHoanThanh.Value <= DateTime.Now)
                {
                    this.errorProvider1.SetError(this.dateNgayDuKienHoanThanh, "nhap ngay du kien hoan thanh");
                    return;
                }
                else
                {
                    this.errorProvider1.Clear();
                }
            }
            DuAn da = new DuAn();

            da.MaDuAn          = txtMaDuAn.Text.Trim();
            da.TenDuAn         = txtTenDuAn.Text.Trim();
            da.NgayBatDau      = DateTime.Parse(dateTimeBatDauDuAn.Value.ToString());
            da.DuKienHoanThanh = DateTime.Parse(dateNgayDuKienHoanThanh.Value.ToString());
            da.MucTieuDuAn     = rtxtMucTieu.Text.Trim();
            var lsda = DuAnControllers.getListDuAnfromDB();

            da.TienDo        = lsda[dataGridViewDuAn.CurrentRow.Index].TienDo;
            da.ChiPhiDuAn    = Int32.Parse(txtChiPhiDuAn.Text.Trim());
            da.NhomPhuTrach  = lsda[dataGridViewDuAn.CurrentRow.Index].NhomPhuTrach;
            da.CongViec      = lsda[dataGridViewDuAn.CurrentRow.Index].CongViec;
            da.NgayHoanThanh = lsda[dataGridViewDuAn.CurrentRow.Index].NgayHoanThanh;
            da.CongViecDuAn  = lsda[dataGridViewDuAn.CurrentRow.Index].CongViecDuAn;
            da.Nhom          = lsda[dataGridViewDuAn.CurrentRow.Index].Nhom;

            DuAnControllers.updateDA(da);
            BindingSource source = new BindingSource();

            source.DataSource = DuAnControllers.getListDuAnfromDB();
            this.dataGridViewDuAn.DataSource = source;
        }