Beispiel #1
0
        public static Summary ToSummaryGPS(this TKePhongDieuHanhInfo pTKe)
        {
            var result = new Summary();

            foreach (var item in pTKe.XeDon.Split('.'))
            {
                if (!BaoCaoThongKeDieuHanh.DicXeHoatDongQuaGPS.ContainsKey(item))//ko lap lai số xe => số xe hoạt động
                {
                    result.TongXeQuaGPS = 1;
                    BaoCaoThongKeDieuHanh.DicXeHoatDongQuaGPS.Add(item, item);
                }
                else
                {
                    result.TongXeQuaTrungTam = 0;
                }
            }
            result.KhachQuaGPS = 1;
            return(result);
        }
Beispiel #2
0
        /// <summary>
        /// *sign hàm tính toán quan trọng nhất!
        /// </summary>
        public static Summary ToSummary(this TKePhongDieuHanhInfo pTKe)
        {
            var result = new Summary();

            result.ID       = pTKe.ID;
            result.MaDoiTac = pTKe.MaDoiTac;
            result.Name     = pTKe.Name;
            if (pTKe.KieuCuocGoi == 2)
            {
                result.KhachGoiLai = 1;
            }
            else
            {
                result.KhachGoiLai = 0;
            }
            if (pTKe.KieuCuocGoi != 1)
            {
                return(result);
            }
            //1. Tổng qua TT
            if (pTKe.XeDon.Length > 0)
            {
                foreach (var item in pTKe.XeDon.Split('.'))
                {
                    if (!BaoCaoThongKeDieuHanh.DicXeHoatDongQuaTT.ContainsKey(item)) //ko lap lai số xe => số xe hoạt động
                    {
                        result.TongXeQuaTrungTam = 1;
                        BaoCaoThongKeDieuHanh.DicXeHoatDongQuaTT.Add(item, item);
                    }
                    else
                    {
                        result.TongXeQuaTrungTam = 0;
                    }
                }
            }
            //2. Tổng qua GPS
            //if (pTKe.XeDon.Length>0&&  pTKe.GPS_KinhDo > 0) result.TongQuaGPS = 10; else result.TongQuaGPS=0;//Đang tạm tính!
            //3. Tổng Cuốc
            result.TongCuoc = 1;
            //4. Đón được ,trượt/hoãn và không xe
            string lenhDT = pTKe.LenhDienThoai.ToLower();
            string lenhTD = pTKe.LenhTongDai.ToLower();
            //5. Trượt hủy hoãn
            int  trangThaiCG   = pTKe.TrangThaiCuocGoi;
            int  trangThaiLenh = pTKe.TrangThaiLenh;
            bool isTruotHoan   = (trangThaiCG == 2 || trangThaiCG == 3 || (trangThaiCG == 5 && string.IsNullOrEmpty(pTKe.XeDon) && trangThaiLenh == 4));
            bool isKhongXe     = (string.IsNullOrEmpty(pTKe.XeDon) && !(trangThaiCG == 2 || trangThaiCG == 3 || (trangThaiCG == 5 && string.IsNullOrEmpty(pTKe.XeDon) && trangThaiLenh == 4)));

            if (isTruotHoan)
            {
                result.TruotHoan = 1;
            }
            else
            {
                result.TruotHoan = 0;
            }
            if (isKhongXe)
            {
                result.KhongXe = 1;
            }
            else
            {
                result.KhongXe = 0;
            }
            //7. Cuốc sảnh
            if (pTKe.LoaiDoiTacID == 2)
            {
                result.CuocSanh = 1;
            }
            else
            {
                result.CuocSanh = 0;
            }
            //8. Đón được
            //result.DonDuoc = result.TongCuoc - result.TruotHoan - result.KhongXe;
            if (pTKe.XeDon.Length > 0)
            {
                result.DonDuoc = 1;
            }
            else
            {
                result.DonDuoc = 0;
            }
            //9. Đón được thực tế
            result.DonDuocThucTe = result.DonDuoc - result.CuocSanh;
            //10. Tổng qua TT
            result.TongCuocQuaTT = 1 - result.CuocSanh;
            //11. Vùng 1
            if (pTKe.Vung == 1 && result.CuocSanh == 0)
            {
                result.Vung1 = 1;
            }
            else
            {
                result.Vung1 = 0;
            }
            if (pTKe.Vung == 2 && result.CuocSanh == 0)
            {
                result.Vung2 = 1;
            }
            else
            {
                result.Vung2 = 0;
            }
            if (pTKe.Vung == 3 && result.CuocSanh == 0)
            {
                result.Vung3 = 1;
            }
            else
            {
                result.Vung3 = 0;
            }
            if (pTKe.Vung == 4 && result.CuocSanh == 0)
            {
                result.Vung4 = 1;
            }
            else
            {
                result.Vung4 = 0;
            }
            if (pTKe.G5_Type == 3)
            {
                result.TongSoCuocDieuQuaApp = 1;
                if (pTKe.XeDon.Length > 0)
                {
                    result.SoCuocDonDuocTuApp = 1;
                }
                else
                {
                    result.SoCuocDonDuocTuApp = 0;
                }
            }
            else
            {
                result.TongSoCuocDieuQuaApp = 0;
            }
            //12.San bay goi qua TT
            if (pTKe.SanBay_DuongDai.Contains("1"))
            {
                result.SanBayQuaTT = 1;
            }
            else
            {
                result.SanBayQuaTT = 0;                                                                 //&& pTKe.MaDoiTac.Length == 0
            }
            if (pTKe.SanBay_DuongDai.Contains("1"))
            {
                result.NB_HN = 1;
            }
            else
            {
                result.NB_HN = 0;
            }
            if (pTKe.SourceType == 2)
            {
                result.NB_DiChung = 1;
            }
            else
            {
                result.NB_DiChung = 0;
            }
            //13. Nhóm số cuốc 7 chỗ, Avante
            if (pTKe.G5_CarType == 4 || pTKe.G5_CarType == 6)
            {
                result.SoCuoc7Cho = 1;
            }
            else
            {
                result.SoCuoc7Cho = 0;
            }
            if (pTKe.XeDon.Length == 4 && pTKe.XeDon.StartsWith("2"))
            {
                result.SoCuocAvante = 1;
            }
            else
            {
                result.SoCuocAvante = 0;
            }
            //14. Nhóm khách đặt
            if (lenhDT.Contains("khách đặt") && pTKe.SourceType != 1)
            {
                result.KhachDat = 1;
            }
            else
            {
                result.KhachDat = 0;
            }
            if (pTKe.SourceType == 1)
            {
                result.KhachDatOnline = 1;
            }
            else
            {
                result.KhachDatOnline = 0;
            }
            //
            int khachdatKhongDonDuoc = 0;

            if (lenhDT.Contains("khách đặt") && (lenhDT.Contains("hủy") || lenhDT.Contains("hoãn") || lenhDT.Contains("trượt") || lenhTD.Contains("hủy") ||
                                                 lenhTD.Contains("hoãn") || lenhTD.Contains("trượt") || lenhTD.Contains("ko xe")))
            {
                khachdatKhongDonDuoc = 1;
            }
            result.KhachDatDonDuoc = result.KhachDat - khachdatKhongDonDuoc;
            //15. Nhóm hoa hồng!
            if (pTKe.Ma_DoiTac.Length > 0 && !BaoCaoThongKeDieuHanh.DicMaDoiTac.ContainsKey(pTKe.MaDoiTac) && pTKe.KieuKhachHangGoiDen == 2)//ko lap lai ma doi tac=> số điểm hoa hồng!
            {
                result.SoDiemHoaHongGoiDen = 1;
                BaoCaoThongKeDieuHanh.DicMaDoiTac.Add(pTKe.MaDoiTac, pTKe.MaDoiTac);
            }
            else
            {
                result.SoDiemHoaHongGoiDen = 0;
            }
            if (pTKe.Ma_DoiTac.Length > 0 && pTKe.KieuKhachHangGoiDen == 2)
            {
                result.SoCuocTuDiemHoaHong = 1;
            }
            else
            {
                result.SoCuocTuDiemHoaHong = 0;
            }
            if (pTKe.Ma_DoiTac.Length > 0 && pTKe.KieuKhachHangGoiDen == 2 && result.TruotHoan == 0 && result.KhongXe == 0)
            {
                result.SoCuocDiemHoaHongDonDuoc = 1;
            }
            else
            {
                result.SoCuocDiemHoaHongDonDuoc = 0;
            }
            //16. Tính toán các tỷ lệ ở trong FillCell!
            return(result);
        }