public ActionResult ThemHangMuc(FormCollection form)
        {
            string ID = form["txtmact"];

            if (ID != null)
            {
                //lay dong cuoi cung bang hangmuc
                var mahm_last = _db.HangMucs.OrderByDescending(i => i.MaHM).Select(i => i.MaHM).FirstOrDefault();
                var mahm_now  = (dynamic)null;
                int d_hm      = 0;
                if (mahm_last != null)
                {
                    mahm_now = mahm_last.ToString().Substring(2, mahm_last.ToString().Length - 2);
                    d_hm     = Convert.ToInt32(mahm_now.ToString());
                    mahm_now = "HM" + Convert.ToString(d_hm + 1);
                }
                else
                {
                    mahm_now = "HM1";
                }

                HangMuc hm = new HangMuc();
                hm.MaHM  = mahm_now;
                hm.MaCT  = ID;
                hm.TenHM = form["txttenhm"];
                hm.MoTa  = form["txtmota"];
                hm.Gia   = 0;

                _db.HangMucs.InsertOnSubmit(hm);
                _db.SubmitChanges();
            }

            return(RedirectToAction("ChiTiet_CongTrinh", "CongTrinh", new { Id = ID }));
        }
Пример #2
0
        private void UpdateHangMuc(DataTable _tblHangMuc, int _maCongTrinh, string _maHieuCT)
        {
            if (_tblHangMuc.Rows.Count > 0)
            {
                foreach (DataRow dr in _tblHangMuc.Rows)
                {
                    BLL_HangMuc adapter  = new BLL_HangMuc();
                    HangMuc     _hangmuc = new HangMuc();

                    _hangmuc.MaCongTrinh = _maCongTrinh;
                    _hangmuc.MaHieuCT    = _maHieuCT;
                    _hangmuc.TenHangMuc  = dr["TenHangMuc"].ToString();
                    _hangmuc.SoLuong     = string.IsNullOrEmpty(dr["SoLuong"].ToString()) ? 0 : Convert.ToInt32(dr["SoLuong"]);
                    _hangmuc.DonGia      = string.IsNullOrEmpty(dr["DonGia"].ToString()) ? 0 : Convert.ToDecimal(dr["DonGia"]);
                    _hangmuc.NguoiTao    = SessionUser.UserName;

                    int    _maHangMuc = 0;
                    string _id        = dr["ID"].ToString();
                    if (dr["MaHangMuc"].ToString().Equals(string.Empty))
                    {
                        _maHangMuc = adapter.Add(_hangmuc);
                    }
                    else
                    {
                        _maHangMuc         = Convert.ToInt32(dr["MaHangMuc"]);
                        _hangmuc.MaHangMuc = _maHangMuc;
                        adapter.Update(_hangmuc);
                    }
                    //them chi tiet hang muc
                    UpdateChiTietHangMuc(adapter, _ds.Tables["ChiTietHangMuc"], _maHangMuc, _id);
                }
            }
        }
Пример #3
0
 public HangMucViewModel(HangMuc obj)
 {
     MaHM  = obj.MaHM;
     MaCT  = obj.MaCT;
     TenHM = obj.TenHM;
     MoTa  = obj.MoTa;
     Gia   = obj.Gia;
 }
 /// <summary>
 /// phat.luu
 /// april 27, 2014
 /// cập nhật thông tin hạng mục TK
 /// </summary>
 /// <param name="objKH"></param>
 /// <returns></returns>
 public int Update(HangMuc objHM)
 {
     try
     {
         return(HangMuc_update(objHM.MaHangMuc, objHM.TenHangMuc, objHM.MaCongTrinh, objHM.MaHieuCT, objHM.SoLuong, objHM.DonGia));
     }
     catch (Exception e)
     {
         Logger.WriteLog(LogLevel.DEBUG, e.Message);
         return(-1);
     }
 }
 /// <summary>
 /// phat.luu
 /// april 29,2014
 /// xóa 1 hạng mục thiết kế
 /// </summary>
 /// <param name="objKH"></param>
 /// <returns></returns>
 public int Delete(HangMuc objHM)
 {
     try
     {
         return(HangMuc_delete(objHM.MaHangMuc));
     }
     catch (Exception e)
     {
         Logger.WriteLog(LogLevel.DEBUG, e.Message);
         return(-1);
     }
 }
Пример #6
0
        public HangMuc Add(HangMuc hangMuc)
        {
            var check = _hangMucRepository.CheckContain(x => x.TenHangMuc.Equals(hangMuc.TenHangMuc));

            if (!check)
            {
                return(_hangMucRepository.Add(hangMuc));
            }
            else
            {
                throw new NameDuplicateException("Hạng mục công việc đã tồn tại");
            }
        }
Пример #7
0
        public void Update(HangMuc hangMuc)
        {
            var check = _hangMucRepository.CheckContain(x => x.TenHangMuc.Equals(hangMuc.TenHangMuc) && x.ID != hangMuc.ID);

            if (!check)
            {
                _hangMucRepository.Update(hangMuc);
            }
            else
            {
                throw new NameDuplicateException("Tên hạng mục đã tồn tại");
            }
        }
 /// <summary>
 /// phat.luu
 /// april 27, 2014
 /// thêm hạng mục TK mới
 /// </summary>
 /// <param name="objKH"></param>
 /// <returns></returns>
 public int Add(HangMuc objHM)
 {
     try
     {
         int?maHangMuc = 0;
         HangMuc_add(objHM.TenHangMuc, objHM.MaCongTrinh, objHM.MaHieuCT, objHM.SoLuong, objHM.DonGia, objHM.NguoiTao, ref maHangMuc);
         return((int)maHangMuc);
     }
     catch (Exception e)
     {
         Logger.WriteLog(LogLevel.DEBUG, e.Message);
         return(-1);
     }
 }
 public static void UpdateHangMuc(this HangMuc hangMuc, HangMucViewModel hangMucVM)
 {
     hangMuc.ID                        = hangMucVM.ID;
     hangMuc.TenHangMuc                = hangMucVM.TenHangMuc;
     hangMuc.MoTaHangMuc               = hangMucVM.MoTaHangMuc;
     hangMuc.LoaiHangMuc               = hangMucVM.LoaiHangMuc;
     hangMuc.TrangThai                 = hangMucVM.TrangThai;
     hangMuc.IdDuAn                    = hangMucVM.IdDuAn;
     hangMuc.IdNhomCongViec            = hangMucVM.IdNhomCongViec;
     hangMuc.IdMucDoTruyenThong        = hangMucVM.IdMucDoTruyenThong;
     hangMuc.NgayBatDau                = hangMucVM.NgayBatDau;
     hangMuc.ThoiGianDuKien            = hangMucVM.ThoiGianDuKien;
     hangMuc.NgayHoanThanh             = hangMucVM.NgayHoanThanh;
     hangMuc.IdNguoiThucHienTheoLenhSX = hangMucVM.IdNguoiThucHienTheoLenhSX;
     hangMuc.SoNguoiThucHien           = hangMucVM.SoNguoiThucHien;
     hangMuc.DiemDanhGia               = hangMucVM.DiemDanhGia;
     hangMuc.HesoKcn                   = hangMucVM.HesoKcn;
     hangMuc.LoaiHangMuc               = hangMucVM.LoaiHangMuc;
     hangMuc.TrangThai                 = hangMucVM.TrangThai;
     hangMuc.isDelete                  = hangMucVM.isDelete;
     hangMuc.Created_at                = hangMucVM.Created_at;
     hangMuc.Updated_at                = hangMucVM.Updated_at;
 }
        public HttpResponseMessage Created(HttpRequestMessage request, HangMucViewModel hangMucViewModel)
        {
            return(CreateReponse(request, () =>
            {
                if (!ModelState.IsValid)
                {
                    return request.CreateResponse(HttpStatusCode.BadRequest, ModelState.IsValid);
                }
                else
                {
                    var hangMuc = new HangMuc();
                    var HeSoNC = _heSoNhanCongService.GetHeSoKcn(hangMucViewModel.SoNguoiThucHien);
                    hangMuc.UpdateHangMuc(hangMucViewModel);
                    hangMuc.HesoKcn = HeSoNC.HeSoNcKcn;
                    var hangMucResponse = _hangMucService.Add(hangMuc);
                    _hangMucService.save();
                    if (hangMucResponse != null)
                    {
                        var donGiaDiemTT = 0;
                        var donGiaDiemGT = 0;
                        var hm = _hangMucService.GetHangMucById(hangMucResponse.ID);

                        decimal?diemHm = 0m;
                        if (hm.HeSoLap != null && hm.HeSoTg != null)
                        {
                            diemHm = hm.DiemDanhGia * hm.HeSoLap.Hesl * hm.HeSoTg.HeSoTgdk * hm.HesoKcn * hm.NhomCongViec.HeSoCV;
                        }

                        if (hangMucViewModel.ThamGia.Count() > 0)
                        {
                            List <ThamGia> listTG = new List <ThamGia>();
                            foreach (var item in hangMucViewModel.ThamGia)
                            {
                                if (hangMucResponse.LoaiHangMuc == 0)
                                {
                                    listTG.Add(new ThamGia()
                                    {
                                        IdHangMuc = hangMucResponse.ID,
                                        IdDuAn = hangMucResponse.IdDuAn,
                                        IdNhanVien = item.IdNhanVien,
                                        HeSoThamGia = item.HeSoThamGia,
                                        LoaiHangMuc = item.LoaiHangMuc,
                                        DiemThanhVien = Math.Round((diemHm * item.HeSoThamGia) / 100 ?? 0),
                                        ThuNhap = donGiaDiemTT * ((diemHm * item.HeSoThamGia) / 100 ?? 0)
                                    });
                                }
                                else
                                {
                                    listTG.Add(new ThamGia()
                                    {
                                        IdHangMuc = hangMucResponse.ID,
                                        IdDuAn = hangMuc.IdDuAn,
                                        IdNhanVien = item.IdNhanVien,
                                        HeSoThamGia = item.HeSoThamGia,
                                        LoaiHangMuc = item.LoaiHangMuc,
                                        DiemThanhVien = Math.Round((diemHm * item.HeSoThamGia) / 100 ?? 0),
                                        ThuNhap = donGiaDiemGT * ((diemHm * item.HeSoThamGia) / 100 ?? 0)
                                    });
                                }
                            }
                            _thamGiaService.Add(listTG, hangMucResponse.ID, hangMucResponse.LoaiHangMuc);
                            _thamGiaService.Save();

                            var duan = _duAnService.GetAllInfoById(hangMuc.IdDuAn);
                            var point = _thamGiaService.TotalPoint(hangMuc.IdDuAn, hangMuc.LoaiHangMuc);

                            //tính đơn giá điểm trục tiếp
                            var q0 = (duan.GiaTriHopDong * duan.TyLeTheoDT) / 100;
                            var q1 = q0 - duan.LuongThueNgoai;
                            var q2 = (q1 * duan.LuongTTQtt) / 100;

                            if (point != 0)
                            {
                                donGiaDiemTT = Convert.ToInt32(q2 / point);
                            }

                            // tính đơn giá điểm gián tiếp
                            var g0 = (duan.GiaTriHopDong * duan.TyLeTheoDT) / 100;
                            var g1 = g0 - duan.LuongThueNgoai;
                            var g2 = (g1 * duan.LuongGTQgt) / 100;
                            var g3 = (g2 * duan.LuongGTV22) / 100;

                            if (point != 0)
                            {
                                donGiaDiemGT = Convert.ToInt32(g3 / point);
                            }

                            if (hangMuc.LoaiHangMuc == 0)
                            {
                                duan.TongDiemTT = point;
                                duan.DonGiaDiemTT = donGiaDiemTT;
                                _duAnService.Update(duan);
                            }
                            else
                            {
                                duan.TongDiemGT = point;
                                duan.DonGiaDiemGT = donGiaDiemGT;
                                _duAnService.Update(duan);
                            }

                            var Tg = _thamGiaService.GetByIdHm(hangMucResponse.ID, hangMucResponse.LoaiHangMuc);
                            List <ThamGia> listTGUp = new List <ThamGia>();
                            foreach (var item in Tg)
                            {
                                if (hangMucResponse.LoaiHangMuc == 0)
                                {
                                    listTGUp.Add(new ThamGia()
                                    {
                                        IdHangMuc = hangMucResponse.ID,
                                        IdDuAn = hangMucResponse.IdDuAn,
                                        IdNhanVien = item.IdNhanVien,
                                        HeSoThamGia = item.HeSoThamGia,
                                        LoaiHangMuc = item.LoaiHangMuc,
                                        DiemThanhVien = Math.Round((diemHm * item.HeSoThamGia) / 100 ?? 0),
                                        ThuNhap = donGiaDiemTT * ((diemHm * item.HeSoThamGia) / 100 ?? 0)
                                    });
                                }
                                else
                                {
                                    listTGUp.Add(new ThamGia()
                                    {
                                        IdHangMuc = hangMucResponse.ID,
                                        IdDuAn = hangMucResponse.IdDuAn,
                                        IdNhanVien = item.IdNhanVien,
                                        HeSoThamGia = item.HeSoThamGia,
                                        LoaiHangMuc = item.LoaiHangMuc,
                                        DiemThanhVien = Math.Round((diemHm * item.HeSoThamGia) / 100 ?? 0),
                                        ThuNhap = donGiaDiemGT * ((diemHm * item.HeSoThamGia) / 100 ?? 0)
                                    });
                                }
                            }
                            _thamGiaService.Add(listTGUp, hangMucResponse.ID, hangMucResponse.LoaiHangMuc);
                            _thamGiaService.Save();
                        }
                    }
                    return request.CreateResponse(HttpStatusCode.Created, hangMucResponse);
                }
            }));
        }
Пример #11
0
        public ActionResult FormSubmit(FormCollection form)
        {
            if (SessionHandler.User == null)
            {
                return(RedirectToAction("Login", "Account"));
            }

            var txtmacongtrinh    = form["txt_ma_congtrinh"];
            var txtmahangmuc      = form["txt_ma_hangmuc"];
            var txttenhangmuc     = form["txt_ten_hangmuc"];
            var txtmahieucv_dmArr = form["txtmahieucv_dm[]"].Split(',');
            var txttencvArr       = form["txttencv[]"].Split(',');
            var txtdonviArr       = form["txtdonvi[]"].Split(',');
            var txtkhoiluongArr   = form["txtkhoiluong[]"].Split(',');
            var txtgiavlArr       = form["txtgiavl[]"].Split(',');
            var txtgiancArr       = form["txtgianc[]"].Split(',');
            var txtgiamtcArr      = form["txtgiamtc[]"].Split(',');
            var txtthanhtiencArr  = form["txtthanhtien[]"].Split(',');
            var txttongtien       = form["txt_tongtien"];


            if (txtmacongtrinh != "")
            {
                if (txtmahangmuc == "")                                     //tao hang muc, bao gom cong viec moi
                {
                    //lay dong cuoi cung bang hangmuc
                    var mahm_last = _db.HangMucs.OrderByDescending(i => i.MaHM).Select(i => i.MaHM).FirstOrDefault();
                    var mahm_now  = (dynamic)null;
                    int d_hm      = 0;
                    if (mahm_last != null)
                    {
                        mahm_now = mahm_last.ToString().Substring(2, mahm_last.ToString().Length - 2);
                        d_hm     = Convert.ToInt32(mahm_now.ToString());
                        mahm_now = "HM" + Convert.ToString(d_hm + 1);
                    }
                    else
                    {
                        mahm_now = "HM1";
                    }

                    HangMuc hm = new HangMuc();
                    hm.MaHM  = mahm_now;
                    hm.MaCT  = txtmacongtrinh;
                    hm.TenHM = txttenhangmuc;
                    hm.MoTa  = "";
                    hm.Gia   = Convert.ToDecimal(txttongtien);

                    _db.HangMucs.InsertOnSubmit(hm);

                    //lay dong cuoi cung bang congviec
                    var macv_last = _db.CongViecs.OrderByDescending(i => i.MaHieuCV_User).Select(i => i.MaHieuCV_User).FirstOrDefault();
                    var macv_now  = (dynamic)null;
                    int d_cv      = 0;

                    if (macv_last != null)
                    {
                        macv_now = macv_last.ToString().Substring(3, macv_last.ToString().Length - 3);
                        d_cv     = Convert.ToInt32(macv_now.ToString());
                    }
                    else
                    {
                        d_cv = 0;
                    }

                    //lay dong cuoi cung bang thanhphanhaophi
                    var mahp_last = _db.ThanhPhanHaoPhis.OrderByDescending(o => o.MaHP).Select(o => o.MaHP).FirstOrDefault();
                    var mahp_now  = (dynamic)null;
                    int d_hp      = 0;
                    if (mahp_last != null)
                    {
                        mahp_now = mahp_last.ToString().Substring(4, mahp_last.ToString().Length - 4);
                        d_hp     = Convert.ToInt32(mahp_now.ToString());
                    }
                    else
                    {
                        d_hp = 0;
                    }

                    for (int i = 0; i < txtmahieucv_dmArr.Length; i++)
                    {
                        macv_now = "CV_" + Convert.ToString(d_cv + 1);

                        CongViec cv_user = new CongViec();
                        cv_user.MaHM          = mahm_now;
                        cv_user.MaHieuCV_User = macv_now;
                        cv_user.MaHieuCV_DM   = txtmahieucv_dmArr[i];
                        cv_user.TenCongViec   = txttencvArr[i];
                        cv_user.DonVi         = txtdonviArr[i];
                        cv_user.KhoiLuong     = Convert.ToDecimal(txtkhoiluongArr[i]);
                        cv_user.GiaVL         = Convert.ToDecimal(txtgiavlArr[i]);
                        cv_user.GiaNC         = Convert.ToDecimal(txtgiancArr[i]);
                        cv_user.GiaMTC        = Convert.ToDecimal(txtgiamtcArr[i]);
                        cv_user.ThanhTien     = Convert.ToDecimal(txtthanhtiencArr[i]);

                        //insert thanh phan hao phi
                        var list_haophi = (from ct in _db.ChiTiet_DinhMucs
                                           join dg in _db.DonGias on ct.MaVL_NC_MTC equals
                                           dg.MaVL_NC_MTC
                                           where ct.MaHieuCV_DM.Equals(cv_user.MaHieuCV_DM)
                                           select new HaoPhi_DM_ViewModel()
                        {
                            Ma = ct.MaVL_NC_MTC,
                            Ten = dg.Ten,
                            DonVi = dg.DonVi,
                            Gia = dg.Gia * ct.SoLuong
                        }).ToList();

                        foreach (var k in list_haophi)
                        {
                            if (k.Ma.ToString().Substring(0, 1) == "V")
                            {
                                mahp_now = "V_HP" + Convert.ToString(d_hp + 1);
                            }
                            if (k.Ma.ToString().Substring(0, 1) == "N")
                            {
                                mahp_now = "N_HP" + Convert.ToString(d_hp + 1);
                            }
                            if (k.Ma.ToString().Substring(0, 1) == "M")
                            {
                                mahp_now = "M_HP" + Convert.ToString(d_hp + 1);
                            }
                            ThanhPhanHaoPhi hp = new ThanhPhanHaoPhi();
                            hp.MaHP          = mahp_now;
                            hp.MaHieuCV_User = macv_now;
                            hp.Ten           = k.Ten;
                            hp.DonVi         = k.DonVi;
                            hp.Gia           = k.Gia;

                            d_hp = d_hp + 1;

                            _db.ThanhPhanHaoPhis.InsertOnSubmit(hp);
                        }

                        d_cv = d_cv + 1;
                        _db.CongViecs.InsertOnSubmit(cv_user);
                    }
                }
                else
                {
                    //delete cong viec trong hang muc
                    var congviecs = _db.CongViecs.Where(i => i.MaHM.Equals(txtmahangmuc));
                    _db.CongViecs.DeleteAllOnSubmit(congviecs);

                    var macongviecs = _db.CongViecs.Where(i => i.MaHM.Equals(txtmahangmuc)).Select(i => i.MaHieuCV_User).ToList();
                    var haophis     = _db.ThanhPhanHaoPhis.Where(i => macongviecs.Contains(i.MaHieuCV_User));
                    _db.ThanhPhanHaoPhis.DeleteAllOnSubmit(haophis);

                    _db.SubmitChanges();


                    //lay dong cuoi cung bang congviec
                    var macv_last = _db.CongViecs.OrderByDescending(i => i.MaHieuCV_User).Select(i => i.MaHieuCV_User).FirstOrDefault();
                    var macv_now  = (dynamic)null;
                    int d_cv      = 0;

                    if (macv_last != null)
                    {
                        macv_now = macv_last.ToString().Substring(3, macv_last.ToString().Length - 3);
                        d_cv     = Convert.ToInt32(macv_now.ToString());
                    }
                    else
                    {
                        d_cv = 0;
                    }

                    //lay dong cuoi cung bang thanhphanhaophi
                    var mahp_last = _db.ThanhPhanHaoPhis.OrderByDescending(o => o.MaHP).Select(o => o.MaHP).FirstOrDefault();
                    var mahp_now  = (dynamic)null;
                    int d_hp      = 0;
                    if (mahp_last != null)
                    {
                        mahp_now = mahp_last.ToString().Substring(4, mahp_last.ToString().Length - 4);
                        d_hp     = Convert.ToInt32(mahp_now.ToString());
                    }
                    else
                    {
                        d_hp = 0;
                    }

                    for (int i = 0; i < txtmahieucv_dmArr.Length; i++)
                    {
                        macv_now = "CV_" + Convert.ToString(d_cv + 1);

                        CongViec cv_user = new CongViec();
                        cv_user.MaHM          = txtmahangmuc;
                        cv_user.MaHieuCV_User = macv_now;
                        cv_user.MaHieuCV_DM   = txtmahieucv_dmArr[i];
                        cv_user.TenCongViec   = txttencvArr[i];
                        cv_user.DonVi         = txtdonviArr[i];
                        cv_user.KhoiLuong     = Convert.ToDecimal(txtkhoiluongArr[i]);
                        cv_user.GiaVL         = Convert.ToDecimal(txtgiavlArr[i]);
                        cv_user.GiaNC         = Convert.ToDecimal(txtgiancArr[i]);
                        cv_user.GiaMTC        = Convert.ToDecimal(txtgiamtcArr[i]);
                        cv_user.ThanhTien     = Convert.ToDecimal(txtthanhtiencArr[i]);

                        //insert thanh phan hao phi
                        var list_haophi = (from ct in _db.ChiTiet_DinhMucs
                                           join dg in _db.DonGias on ct.MaVL_NC_MTC equals
                                           dg.MaVL_NC_MTC
                                           where ct.MaHieuCV_DM.Equals(cv_user.MaHieuCV_DM)
                                           select new HaoPhi_DM_ViewModel()
                        {
                            Ma = ct.MaVL_NC_MTC,
                            Ten = dg.Ten,
                            DonVi = dg.DonVi,
                            Gia = dg.Gia * ct.SoLuong
                        }).ToList();

                        foreach (var k in list_haophi)
                        {
                            if (k.Ma.ToString().Substring(0, 1) == "V")
                            {
                                mahp_now = "V_HP" + Convert.ToString(d_hp + 1);
                            }
                            if (k.Ma.ToString().Substring(0, 1) == "N")
                            {
                                mahp_now = "N_HP" + Convert.ToString(d_hp + 1);
                            }
                            if (k.Ma.ToString().Substring(0, 1) == "M")
                            {
                                mahp_now = "M_HP" + Convert.ToString(d_hp + 1);
                            }
                            ThanhPhanHaoPhi hp = new ThanhPhanHaoPhi();
                            hp.MaHP          = mahp_now;
                            hp.MaHieuCV_User = macv_now;
                            hp.Ten           = k.Ten;
                            hp.DonVi         = k.DonVi;
                            hp.Gia           = k.Gia;

                            d_hp = d_hp + 1;

                            _db.ThanhPhanHaoPhis.InsertOnSubmit(hp);
                        }

                        d_cv = d_cv + 1;
                        _db.CongViecs.InsertOnSubmit(cv_user);
                    }
                }
            }
            _db.SubmitChanges();

            return(RedirectToAction("Index", "CongTrinh"));
        }