/// <summary>
        /// Tạo hợp đồng
        /// </summary>
        /// <param name="HD"></param>
        /// <param name="CTHD"></param>
        /// <param name="KH"></param>
        /// <param name="lstLoaiXe"></param>
        /// <returns>Boolean</returns>
        public static Boolean ThemHopDong(HopDongViewModel HD, CT_HopDongViewModel CTHD, KhachHangViewModel KH, String lstLoaiXe, String strSoLuong, String strMaChiPhi, String strSoLuongCP, string iNgayLech)
        {
            var entity = new QuanLyThueXeEntities();

            try
            {
                // Them moi hop dong
                var hopDong = new HopDong();
                if (KH.MaKH == "Detra")
                {
                    KhachHangQueries.ThemKhachHang(KH);
                    var kh = entity.KhachHangs.OrderByDescending(n => n.STT).Take(1).SingleOrDefault();
                    hopDong.MaKH = kh.MaKH;
                }
                else if (!String.IsNullOrEmpty(KH.MaKH))
                {
                    hopDong.MaKH = KH.MaKH;
                    var kh = entity.KhachHangs.SingleOrDefault(n => n.MaKH == KH.MaKH);
                }
                hopDong.GiamGia        = decimal.Parse(HD.GiamGia.ToString().Replace(".", ""));
                hopDong.SoHopDong      = TuDongTangSoHD();
                hopDong.NgayLapHD      = DateTime.Now;
                hopDong.MaLoTrinh      = HD.MaLoTrinh;
                hopDong.MaNV           = HD.MaNV;
                hopDong.MaTrangThai    = "0";
                hopDong.SoTienTraTruoc = 0;
                hopDong.SoTienConLai   = HD.SoTienConLai;
                hopDong.GhiChu         = HD.GhiChu;

                entity.HopDongs.Add(hopDong);


                if (!String.IsNullOrEmpty(strMaChiPhi))
                {
                    //lấy list mã chi phí phát sinh
                    var lstCPPS = strMaChiPhi.Split(',');
                    // Cắt chuỗi lấy list số lượng
                    var       lstSoLuongCP = strSoLuongCP.Split(',');
                    decimal[] arrSoluongCP = new decimal[10];
                    int       iCP          = 0;
                    foreach (var sl in lstSoLuongCP)
                    {
                        if (!string.IsNullOrEmpty(sl))
                        {
                            arrSoluongCP[iCP] = decimal.Parse(sl.ToString().Replace(".", ""));
                        }
                        iCP++;
                    }

                    int jCP = 0;
                    foreach (var cp in lstCPPS)
                    {
                        ChiTietChiPhiPhatSinh ct = new ChiTietChiPhiPhatSinh();
                        ct.MaChiPhi  = cp;
                        ct.SoHopDong = hopDong.SoHopDong;
                        ct.SoLuong   = 1;
                        if (String.IsNullOrEmpty(arrSoluongCP[jCP].ToString()) || arrSoluongCP[jCP] == 0)
                        {
                            ChiPhiPhatSinh x = entity.ChiPhiPhatSinhs.Where(n => n.MaChiPhi == cp).SingleOrDefault();
                            ct.DonGia = x.PhiPhatSinh;
                        }
                        else
                        {
                            ct.DonGia = arrSoluongCP[jCP];
                        }
                        entity.ChiTietChiPhiPhatSinhs.Add(ct);
                        jCP++;
                    }
                }
                var lstMaLoaiXe = lstLoaiXe.Split('#');  //Cắt chuỗi loại xe
                var lstSoLuong  = strSoLuong.Split(','); // Cắt chuỗi số lượng


                int[] arrSoluong = new int[10];
                int   i          = 0;
                foreach (var sl in lstSoLuong)
                {
                    arrSoluong[i] = int.Parse(sl);
                    i++;
                }

                //Them moi Chi tiet hop dong
                int j = 0;

                //int ngay = Int16.Parse(iNgayLech);
                foreach (var mlx in lstMaLoaiXe)
                {
                    for (int sl = 0; sl < arrSoluong[j]; sl++)
                    {
                        var chiTietHD = new CT_HopDong();
                        chiTietHD.SoHopDong    = hopDong.SoHopDong;
                        chiTietHD.MaLoaiXe     = mlx;
                        chiTietHD.SoLuongNguoi = CTHD.SoLuongNguoi;
                        chiTietHD.NgayDi       = DateTime.Parse(CTHD.NgayDi.ToString("dd/MM/yyyy") + " " + CTHD.GioDon.Value.ToString("HH:mm"));
                        chiTietHD.NgayVe       = DateTime.Parse(CTHD.NgayVe.ToString("dd/MM/yyyy HH:mm"));
                        chiTietHD.GioDon       = DateTime.Parse(CTHD.NgayDi.ToString("dd/MM/yyyy") + " " + CTHD.GioDon.Value.ToString("HH:mm"));
                        chiTietHD.DiaDiemDon   = CTHD.DiaDiemDon;
                        chiTietHD.Gia          = (BangGiaQueries.TinhGiaUocTinh(mlx, hopDong.MaLoTrinh).Gia);
                        chiTietHD.MaCongTy     = CTHD.MaCongTy;
                        chiTietHD.GhiChu       = CTHD.GhiChu;
                        chiTietHD.SoLuong      = 1;
                        entity.CT_HopDongs.Add(chiTietHD);
                    }
                    j++;
                }

                ////Them moi hoa don
                //var hoaDon = new HoaDon();
                //hoaDon.SoHoaDon = "HD" + hopDong.SoHopDong;
                //hoaDon.NgayLap = hopDong.NgayLapHD;
                //hoaDon.MaKH = hopDong.MaKH;
                //hoaDon.MaNV = hopDong.MaNV;
                //entity.HoaDons.Add(hoaDon);

                ////Them chi tiet hoa don
                //var chiTietHoaDon = new CT_HoaDon();
                //chiTietHoaDon.SoHoaDon = hoaDon.SoHoaDon;
                //chiTietHoaDon.SoHopDong = hopDong.SoHopDong;
                //chiTietHoaDon.TongSoXeThue = chiTietHoaDon.TongSoXeThue;
                //chiTietHoaDon.SoTienTraTruoc = hopDong.SoTienTraTruoc;
                //chiTietHoaDon.SoTienConLai = hopDong.SoTienConLai;
                //chiTietHoaDon.TongThanhToan = hopDong.SoTienTraTruoc + hopDong.SoTienConLai;
                //entity.CT_HoaDons.Add(chiTietHoaDon);
                entity.SaveChanges();
                return(true);
            }
            catch (Exception ex)
            {
                entity.Dispose();
                return(false);
            }
        }
        /// <summary>
        /// Tạo hợp đồng
        /// </summary>
        /// <param name="HD"></param>
        /// <param name="CTHD"></param>
        /// <param name="KH"></param>
        /// <param name="lstLoaiXe"></param>
        /// <returns>Boolean</returns>
        public static Boolean ThemHopDongTuyenDuongMoi(HopDongViewModel HD, CT_HopDongViewModel CTHD, KhachHangViewModel KH, TuyenDuongMoiViewModel tuyenDuongMoi)
        {
            var entity = new QuanLyThueXeEntities();

            try
            {
                //Tạo mới 1 obj lộ trình
                LoTrinhViewModel loTrinhMoi = new LoTrinhViewModel();

                // Them moi hop dong
                var hopDong = new HopDong();

                //Tạo mới 1 obj bảng giá
                var bangGia = new BangGiaViewModel();

                //Cắt chuỗi loại xe
                var lstMaLoaiXe = tuyenDuongMoi.strLoaiXeMoi.Split(',');

                // Cắt chuỗi số lượng
                var lstSoLuong = tuyenDuongMoi.StrSoLuongXeMoi.Split(',');

                // Gán giá trị số lượng xe vào mảng
                int[] arrSoluong = new int[10];
                int   i          = 0;
                foreach (var sl in lstSoLuong)
                {
                    if (!string.IsNullOrEmpty(sl))
                    {
                        arrSoluong[i] = int.Parse(sl);
                    }
                    i++;
                }

                // Cắt chuỗi giá loại xe
                var listGiaXe = tuyenDuongMoi.strGiaXeMoi.Split(',');

                // Gán giá trị xe vào chuỗi
                decimal[] arrGiaXe = new decimal[10];
                int       g        = 0;
                foreach (var gx in listGiaXe)
                {
                    arrGiaXe[g] = decimal.Parse(gx.ToString().Replace(".", ""));
                    g++;
                }

                if (KH.MaKH == "Detra")
                {
                    KhachHangQueries.ThemKhachHang(KH);
                    var kh = entity.KhachHangs.OrderByDescending(n => n.STT).Take(1).SingleOrDefault();
                    hopDong.MaKH = kh.MaKH;

                    //Gán thông tin lộ trình mới
                    loTrinhMoi.TenLoTrinh = tuyenDuongMoi.TenLoTrinhMoi;
                    loTrinhMoi.MaKH       = "DETRA";
                    //Thêm lộ trình mới
                    LoTrinhQueries.ThemLoTrinh(loTrinhMoi);
                    //Lấy thông tin lộ trình vừa được thêm
                    var lotrinh = entity.LoTrinhs.OrderByDescending(n => n.STT).Take(1).SingleOrDefault();
                    // Gán giá trị mã lộ trình mới thêm vào mã hợp đồng
                    hopDong.MaLoTrinh = lotrinh.MaLoTrinh;

                    //Gán giá trị cho bảng giá
                    int bg = 0;
                    foreach (var mlx in lstMaLoaiXe)
                    {
                        bangGia.MaLoaiXe  = mlx;
                        bangGia.ThoiGian  = tuyenDuongMoi.GioUocTinh;
                        bangGia.MaKH      = KH.MaKH;
                        bangGia.Gia       = arrGiaXe[bg];
                        bangGia.MaLoTrinh = lotrinh.MaLoTrinh;
                        bg++;
                        //Thêm bảng giá
                        BangGiaQueries.ThemBangGia(bangGia);
                    }
                }
                else if (!String.IsNullOrEmpty(KH.MaKH))
                {
                    hopDong.MaKH = KH.MaKH;
                    var kh = entity.KhachHangs.SingleOrDefault(n => n.MaKH == KH.MaKH);
                    //Gán thông tin lộ trình mới
                    loTrinhMoi.TenLoTrinh = tuyenDuongMoi.TenLoTrinhMoi;
                    loTrinhMoi.MaKH       = KH.MaKH;
                    //Thêm lộ trình mới
                    LoTrinhQueries.ThemLoTrinh(loTrinhMoi);
                    //Thêm lộ trình mới
                    LoTrinhQueries.ThemLoTrinh(loTrinhMoi);
                    //Lấy thông tin lộ trình vừa được thêm
                    var lotrinh = entity.LoTrinhs.OrderByDescending(n => n.STT).Take(1).SingleOrDefault();
                    // Gán giá trị mã lộ trình mới thêm vào mã hợp đồng
                    hopDong.MaLoTrinh = lotrinh.MaLoTrinh;

                    //Gán giá trị cho bảng giá
                    int bg = 0;
                    foreach (var mlx in lstMaLoaiXe)
                    {
                        bangGia.MaLoaiXe  = mlx;
                        bangGia.ThoiGian  = tuyenDuongMoi.GioUocTinh;
                        bangGia.MaKH      = KH.MaKH;
                        bangGia.Gia       = arrGiaXe[bg];
                        bangGia.MaLoTrinh = lotrinh.MaLoTrinh;
                        bg++;
                    }
                    //Thêm bảng giá
                    BangGiaQueries.ThemBangGia(bangGia);
                }

                hopDong.GiamGia        = decimal.Parse(tuyenDuongMoi.GiamGiaMoi.ToString().Replace(".", ""));
                hopDong.SoHopDong      = TuDongTangSoHD();
                hopDong.NgayLapHD      = DateTime.Now;
                hopDong.MaNV           = HD.MaNV;
                hopDong.MaTrangThai    = "0";
                hopDong.SoTienTraTruoc = 0;
                hopDong.SoTienConLai   = tuyenDuongMoi.TongTienMoi;
                hopDong.GhiChu         = tuyenDuongMoi.GhiChuMoi;

                entity.HopDongs.Add(hopDong);

                if (!String.IsNullOrEmpty(tuyenDuongMoi.strMaChiPhiMoi))
                {
                    //lấy list mã chi phí phát sinh
                    var lstCPPS = tuyenDuongMoi.strMaChiPhiMoi.Split(',');
                    // Cắt chuỗi lấy list số lượng
                    if (string.IsNullOrEmpty(tuyenDuongMoi.strSoLuongCPMoi))
                    {
                        tuyenDuongMoi.strSoLuongCPMoi = ",";
                    }
                    var lstSoLuongCP = tuyenDuongMoi.strSoLuongCPMoi.Split(',');

                    //gán giá trị số lượng chi phí vào mảng
                    decimal[] arrSoluongCP = new decimal[10];
                    int       iCP          = 0;
                    foreach (var sl in lstSoLuongCP)
                    {
                        if (!string.IsNullOrEmpty(sl))
                        {
                            arrSoluongCP[iCP] = decimal.Parse(sl.ToString().Replace(".", ""));
                        }
                        iCP++;
                    }

                    int jCP = 0;
                    foreach (var cp in lstCPPS)
                    {
                        ChiTietChiPhiPhatSinh ct = new ChiTietChiPhiPhatSinh();
                        ct.MaChiPhi  = cp;
                        ct.SoHopDong = hopDong.SoHopDong;
                        ct.SoLuong   = 1;
                        if (String.IsNullOrEmpty(arrSoluongCP[jCP].ToString()) || arrSoluongCP[jCP] == 0)
                        {
                            ChiPhiPhatSinh x = entity.ChiPhiPhatSinhs.Where(n => n.MaChiPhi == cp).SingleOrDefault();
                            ct.DonGia = x.PhiPhatSinh;
                        }
                        else
                        {
                            ct.DonGia = arrSoluongCP[jCP];
                        }
                        entity.ChiTietChiPhiPhatSinhs.Add(ct);
                        jCP++;
                    }
                }

                //Them moi Chi tiet hop dong
                int j = 0;
                foreach (var mlx in lstMaLoaiXe)
                {
                    for (int sl = 0; sl < arrSoluong[j]; sl++)
                    {
                        var chiTietHD = new CT_HopDong();
                        chiTietHD.SoHopDong    = hopDong.SoHopDong;
                        chiTietHD.MaLoaiXe     = mlx;
                        chiTietHD.SoLuongNguoi = tuyenDuongMoi.SoLuongNguoiMoi;
                        chiTietHD.NgayDi       = DateTime.Parse(tuyenDuongMoi.NgayDiMoi.Value.ToString("dd/MM/yyyy") + " " + tuyenDuongMoi.GioDonMoi.Value.ToString("HH:mm"));
                        chiTietHD.NgayVe       = DateTime.Parse(tuyenDuongMoi.NgayVeMoi.Value.ToString("dd/MM/yyyy HH:mm"));
                        chiTietHD.GioDon       = DateTime.Parse(tuyenDuongMoi.NgayDiMoi.Value.ToString("dd/MM/yyyy") + " " + tuyenDuongMoi.GioDonMoi.Value.ToString("HH:mm"));
                        chiTietHD.DiaDiemDon   = tuyenDuongMoi.DiaDiemMoi;
                        chiTietHD.Gia          = arrGiaXe[j];
                        chiTietHD.MaCongTy     = CTHD.MaCongTy;
                        chiTietHD.GhiChu       = CTHD.GhiChu;
                        chiTietHD.SoLuong      = 1;
                        entity.CT_HopDongs.Add(chiTietHD);
                    }
                    j++;
                }

                ////Them moi hoa don
                //var hoaDon = new HoaDon();
                //hoaDon.SoHoaDon = "HD" + hopDong.SoHopDong;
                //hoaDon.NgayLap = hopDong.NgayLapHD;
                //hoaDon.MaKH = hopDong.MaKH;
                //hoaDon.MaNV = hopDong.MaNV;
                //entity.HoaDons.Add(hoaDon);

                ////Them chi tiet hoa don
                //var chiTietHoaDon = new CT_HoaDon();
                //chiTietHoaDon.SoHoaDon = hoaDon.SoHoaDon;
                //chiTietHoaDon.SoHopDong = hopDong.SoHopDong;
                //chiTietHoaDon.TongSoXeThue = chiTietHoaDon.TongSoXeThue;
                //chiTietHoaDon.SoTienTraTruoc = hopDong.SoTienTraTruoc;
                //chiTietHoaDon.SoTienConLai = hopDong.SoTienConLai;
                //chiTietHoaDon.TongThanhToan = hopDong.SoTienTraTruoc + hopDong.SoTienConLai;
                //entity.CT_HoaDons.Add(chiTietHoaDon);
                entity.SaveChanges();
                return(true);
            }
            catch (Exception ex)
            {
                entity.Dispose();
                return(false);
            }
        }