private void btnRefresh_Click(object sender, EventArgs e) { if (TimKiem_BaoCao.CheckTuNgayDenNgay(calTuNgay.Value, calDenNgay.Value)) { List <KiemSoatXeLienLac> ListSuKienCuaXe = KiemSoatXeLienLac.GetBaoCaoMatLienLac(calTuNgay.Value, calDenNgay.Value); if ((ListSuKienCuaXe != null) && (ListSuKienCuaXe.Count > 1)) { int iLen = ListSuKienCuaXe.Count; BaoCao15 objBC15; BaoCao15 objBC15LLTongDai = new BaoCao15(); for (int i = 0; i < iLen - 1; i++) { objBC15 = XacDinhMatLienLacCuaXe(ListSuKienCuaXe[i], ListSuKienCuaXe[i + 1]); if (objBC15 != null) { if (objBC15.ThoiDiemDaiGoi.Length > 0) // co thong tin dai goi { if (objBC15LLTongDai.ThoiDiemDaiGoi.Length <= 0) // chua khoi tao du lieu tong dai goi { objBC15LLTongDai.KhoangMatLienLac = objBC15.KhoangMatLienLac; objBC15LLTongDai.SoHieuXe = objBC15.SoHieuXe; objBC15LLTongDai.TenLaiXe = objBC15.TenLaiXe; objBC15LLTongDai.ThoiDiemDaiGoi = objBC15.ThoiDiemDaiGoi; objBC15LLTongDai.GhiChu = objBC15.GhiChu; } else // truoc day da co thong tin dai goi { objBC15LLTongDai.ThoiDiemDaiGoi += ";" + objBC15.ThoiDiemDaiGoi; } } else { if ((objBC15LLTongDai.KhoangMatLienLac == null) || (objBC15LLTongDai.ThoiDiemDaiGoi.Length <= 0)) // Khoong co thong tin dai goi truoc day { g_ListItemBC15.Add(objBC15); } else // truoc day da co thong tin dai goi { objBC15LLTongDai.GhiChu = objBC15.GhiChu; objBC15LLTongDai.KhoangMatLienLac += objBC15.KhoangMatLienLac; g_ListItemBC15.Add(new BaoCao15(objBC15LLTongDai.SoHieuXe, objBC15LLTongDai.TenLaiXe, GetChuanKhoangMatLiennLac(objBC15LLTongDai.KhoangMatLienLac), objBC15LLTongDai.ThoiDiemDaiGoi, objBC15LLTongDai.GhiChu)); // khoi tao lai objBC15LLTongDai.ThoiDiemDaiGoi = ""; objBC15LLTongDai.SoHieuXe = ""; objBC15LLTongDai.GhiChu = ""; objBC15LLTongDai.TenLaiXe = ""; objBC15LLTongDai.KhoangMatLienLac = ""; } } } if ((i == iLen - 1 - 1) && (objBC15LLTongDai.KhoangMatLienLac.Length > 0)) { g_ListItemBC15.Add(objBC15LLTongDai); } } } gridXeMatLienLac.DataMember = "lstXeMatLienLac"; gridXeMatLienLac.SetDataBinding(g_ListItemBC15, "lstXeMatLienLac"); btnRefresh.Enabled = false; // btnPrint.Enabled = !btnRefresh.Enabled; btnExportExcel.Enabled = !btnRefresh.Enabled; } else { MessageBox.MessageBoxBA msgDialog = new Taxi.MessageBox.MessageBoxBA(); msgDialog.Show(this, "Bạn phải nhập [Từ ngày] nhỏ hơn hoặc bằng [Đến ngày].", "Thông báo", Taxi.MessageBox.MessageBoxButtonsBA.OK, Taxi.MessageBox.MessageBoxIconBA.Warning); return; } }
/// <summary> /// hàm sẽ trả về thông tin maats liên lạc của xe /// - nếu mất liên lạc thì giá trị trả về khách null /// - nếu có HasTôngDàicheck = true thì lưu lại vào objOld để cho vòng lặp sau /// /// </summary> /// <param name="objOld"></param> /// <param name="TrangThaiXe1"></param> /// <param name="TrangThaiXe2"></param> /// <param name="HasTongDaiCheck"></param> /// <returns></returns> private BaoCao15 XacDinhMatLienLacCuaXe(KiemSoatXeLienLac TrangThaiXe1, KiemSoatXeLienLac TrangThaiXe2) { string KhoangMatLienLac = ""; string TongDaiCheck = ""; string GhiChu = ""; if (TrangThaiXe1.SoHieuXe != TrangThaiXe2.SoHieuXe) { return(null); } if (TrangThaiXe2.TrangThaiLaiXeBao == Taxi.Utils.KieuLaiXeBao.BaoRaHoatDong) { return(null); // thời đỉem trước đó là về không cần xét } TimeSpan timeSpan = TrangThaiXe2.ThoiDiemBao - TrangThaiXe1.ThoiDiemBao; if ((TrangThaiXe2.TrangThaiLaiXeBao != Taxi.Utils.KieuLaiXeBao.TongDaiCheck) && (timeSpan.TotalMinutes < ThongTinCauHinh.SoPhutGioiHanMatLienLac)) { return(null); } else // có dấu hiệu mất liên lạc { // Khach duong dai if (TrangThaiXe1.LoaiChoKhach == Taxi.Utils.LoaiChoKhach.ChoKhachDuongDai) { if (timeSpan.TotalMinutes >= ThongTinCauHinh.SoPhutGioiHanMatLienLacBaoDiDuongDai) // mât liên lạc { KhoangMatLienLac = string.Format("{0: HH:mm}h", TrangThaiXe1.ThoiDiemBao.Add(new TimeSpan(0, ThongTinCauHinh.SoPhutGioiHanMatLienLacBaoDiDuongDai, 0))) + string.Format("-{0: HH:mm}h ngày {1:dd/MM}", TrangThaiXe2.ThoiDiemBao, TrangThaiXe2.ThoiDiemBao); } } // báo cho khach di san bay else if (TrangThaiXe1.LoaiChoKhach == Taxi.Utils.LoaiChoKhach.ChoKhachSanBay) { if (timeSpan.TotalMinutes >= ThongTinCauHinh.SoPhutGioiHanMatLienLacBaoDiSanBay) // mât liên lạc { KhoangMatLienLac = string.Format("{0: HH:mm}h", TrangThaiXe1.ThoiDiemBao.Add(new TimeSpan(0, ThongTinCauHinh.SoPhutGioiHanMatLienLacBaoDiSanBay, 0))) + string.Format("-{0: HH:mm}h ngày {1:dd/MM}", TrangThaiXe2.ThoiDiemBao, TrangThaiXe2.ThoiDiemBao); } } else { if (TrangThaiXe1.TrangThaiLaiXeBao == Taxi.Utils.KieuLaiXeBao.BaoNghi) { if (timeSpan.TotalMinutes >= ThongTinCauHinh.SoPhutGioiHanMatLienLacBaoNghi) { KhoangMatLienLac = string.Format("{0: HH:mm}h", TrangThaiXe1.ThoiDiemBao.Add(new TimeSpan(0, ThongTinCauHinh.SoPhutGioiHanMatLienLacBaoNghi, 0))) + string.Format("-{0: HH:mm}h ngày {1:dd/MM}", TrangThaiXe2.ThoiDiemBao, TrangThaiXe2.ThoiDiemBao); } } else { if ((timeSpan.TotalMinutes >= ThongTinCauHinh.SoPhutGioiHanMatLienLac) || (TrangThaiXe2.TrangThaiLaiXeBao == Taxi.Utils.KieuLaiXeBao.TongDaiCheck)) { if (TrangThaiXe2.TrangThaiLaiXeBao != Taxi.Utils.KieuLaiXeBao.TongDaiCheck) { DateTime temp = TrangThaiXe1.ThoiDiemBao.Add(new TimeSpan(0, ThongTinCauHinh.SoPhutGioiHanMatLienLac, 0)); KhoangMatLienLac = string.Format("{0: HH:mm }h", temp); KhoangMatLienLac += string.Format("-{0: HH:mm}h ngày {1:dd/MM}", TrangThaiXe2.ThoiDiemBao, TrangThaiXe2.ThoiDiemBao); } else { KhoangMatLienLac = string.Format("{0: HH:mm }h", TrangThaiXe1.ThoiDiemBao); KhoangMatLienLac += string.Format("-{0: HH:mm}h ngày {1:dd/MM}", TrangThaiXe2.ThoiDiemBao, TrangThaiXe2.ThoiDiemBao); } } } } } if (TrangThaiXe2.TrangThaiLaiXeBao == Taxi.Utils.KieuLaiXeBao.TongDaiCheck) { TongDaiCheck = string.Format("{0: HH:mm}h", TrangThaiXe2.ThoiDiemBao); } GhiChu = GetGhiChu(TrangThaiXe1); BaoCao15 objBC15 = new BaoCao15(); objBC15.SoHieuXe = TrangThaiXe1.SoHieuXe; objBC15.KhoangMatLienLac = KhoangMatLienLac; objBC15.TenLaiXe = TrangThaiXe1.MaLaiXe; objBC15.ThoiDiemDaiGoi = TongDaiCheck; objBC15.GhiChu = GhiChu; if (((objBC15.GhiChu.Length <= 0) || (objBC15.KhoangMatLienLac.Length <= 0)) && (objBC15.ThoiDiemDaiGoi.Length <= 0)) { return(null); } return(objBC15); }