private void gridView1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { if (e.KeyData == Keys.Enter) { if (!ThongTinDangNhap.HasPermission(StaxiPermission.BaoXeDiDuongDai)) { new MessageBox.MessageBoxBA().Show("Bạn không có quyền thao tác tác vụ này."); return; } var m = gridView1.GetFocusedRow <XeDiDuongDai>(); if (m != null) { var frm = new frmUpdateTrip(m); frm.ShowDialog(); } } else if (e.KeyData == Keys.H) { if (!ThongTinDangNhap.HasPermission(StaxiPermission.BaoXeDiDuongDai)) { new MessageBox.MessageBoxBA().Show("Bạn không có quyền thao tác tác vụ này."); return; } var m = gridView1.GetFocusedRow <XeDiDuongDai>(); if (m != null && new MessageBox.MessageBoxBA().Show("Bạn có muốn hủy cuốc này không?", "Thông báo", MessageBox.MessageBoxButtonsBA.YesNo) == "Yes") { _dulieu.Remove(m); shGridControl1.RefreshDataSource(); m.UpdateStatus(m.ID, Enum_XeBaoDiDuongDai_TrangThai.HuyDieu, ThongTinDangNhap.USER_ID, true); TaxiReturn_Process.TripUpdateStatus(m.ID, ThongTinCauHinh.CompanyID, Services.FastTaxi_OperationService.Trip.Status.HuyDieu); } } }
private void GridDaDonDuocKhach() { if (ThongTinDangNhap.HasPermission(StaxiPermission.GhepXeChieuVe)) { if (gridView_Bookings.GetFocusedRow() != null) { var m = gridView_Bookings.GetFocusedRow().As <Booking>(); if (string.IsNullOrEmpty(m.OpVehicle) || m.FK_TaxiReturn == 0)// { new MessageBox.MessageBoxBA().Show("Cuốc đón khách phải là cuốc đã được gán xe"); return; } //m.OpAcceptedUser = ThongTinDangNhap.USER_ID; m.OpStatus = (int)Enum_Bookings_OpStatus.DaDonKhach; m.DaDonDuocKhach(); TaxiReturn_Process.TripUpdateStatus(m.FK_TaxiReturn, ThongTinCauHinh.CompanyID, Trip.Status.KhachDaLenXe); if (!IsDieuXe) { btnSearch.PerformClick(); } else { _iSearch = 0; } } } }
private void btnHuy_Click(object sender, EventArgs e) { try { if (this.Confirm("Bạn có muốn hủy không?")) { if (_model != null && _model.ID > 0) { _model.UpdateStatus(_model.ID, Enum_XeBaoDiDuongDai_TrangThai.HuyDieu, ThongTinDangNhap.USER_ID, true); TaxiReturn_Process.TripUpdateStatus(_model.ID, ThongTinCauHinh.CompanyID, Services.FastTaxi_OperationService.Trip.Status.HuyDieu); } DialogResult = DialogResult.OK; this.Close(); } } catch (Exception ex) { LogError.WriteLogError("btnHuy_Click: ", ex); } }
private void GridDelete() { if (ThongTinDangNhap.HasPermission(StaxiPermission.GhepXeChieuVe)) { if (gridView_Bookings.GetFocusedRow() != null) { var m = gridView_Bookings.GetFocusedRow().As <Booking>(); if (m.OpStatus == (int)Enum_Bookings_OpStatus.DaDonKhach) { new MessageBox.MessageBoxBA().Show("[Không xóa được] - Cuốc khách này đã đón được khách.", "Thông báo"); return; } else if (m.OpStatus == (int)Enum_Bookings_OpStatus.ChapNhan) { new MessageBox.MessageBoxBA().Show("[Không xóa được] - Cuốc khách này đã ghép xe.", "Thông báo"); return; } var rs = new MessageBox.MessageBoxBA().Show("Bạn có muốn xóa cuốc này không?", "Thông báo", MessageBoxButtons.YesNo); if (rs.ToLower() == ("YES").ToLower()) { //m.OpAcceptedUser = ThongTinDangNhap.USER_ID; m.DoDelete(); if (m.FK_TaxiReturn > 0) { TaxiReturn_Process.TripUpdateStatus(m.FK_TaxiReturn, ThongTinCauHinh.CompanyID, Trip.Status.KetThuc); } if (!IsDieuXe) { btnSearch.PerformClick(); } } } else { // new MessageBox.MessageBox().Show("Chưa chọn cuốc khách"); } } }
private void kếtThúcToolStripMenuItem_Click(object sender, EventArgs e) { var _model = gridView_Bookings.GetFocusedRow <Booking>(); if (_model == null) { return; } int G_XNCode = ThongTinCauHinh.CompanyID; #region Trường hợp 1:Khách hàng hủy if (_model.OpCommand == m_HuyDieu) { //Bạn có muốn xóa cuốc khách chiều về này không ? // if (new MessageBox.MessageBox().Show("Khách hàng hủy cuốc chiều về ?", "Thông báo", MessageBoxButtons.YesNo).ToLower() == "yes".ToLower()) { try { //cập nhật trạng thái của xe đường dài. var xddd = new XeDiDuongDai(); xddd.UpdateStatus(_model.FK_TaxiReturn, Enum_XeBaoDiDuongDai_TrangThai.ChoGhepKhach, ThongTinDangNhap.USER_ID); _model.UpdateStatus(_model.PK_BooID, Enum_Bookings_OpStatus.KhachHangHuy, m_HuyDieu, ThongTinDangNhap.USER_ID); if (_model.FK_TaxiReturn > 0) { TaxiReturn_Process.TripUpdateStatus(_model.FK_TaxiReturn, G_XNCode, Services.FastTaxi_OperationService.Trip.Status.DangDi); } // this.Close(); } catch (Exception ex) { new Log().WriteLog(ThongTinDangNhap.USER_ID, "ctrlListBook\\kếtThúcToolStripMenuItem_Click", DateTime.Now, ex.Message); // ShowMessageFail("[KH hủy] Quá trình lưu xảy ra bị lỗi"); } } return; } #endregion #region Từ chối if (_model.FK_TaxiReturn == 0) { new MessageBox.MessageBoxBA().Show("Cuốc khách chưa gián xe.\nvui lòng chọn trạng thái từ chối"); return; } #endregion #region Trường hợp 2:Đã ghép. else { #region Mobile đã gặp xe if (_model.OpCommand == m_DaGapXe) { try { string rs = string.Empty; var themTrip = new XeDiDuongDai(); var address = new AutoCompleteAddress(); address.Bind(); #region Khởi tạo trip mới và chưa lưu themTrip.ID = _model.FK_TaxiReturn; try { //Thiếu : Thêm ID cha vào để quan hệ if (themTrip.GetByKey()) { themTrip.ParentID = _model.FK_TaxiReturn; themTrip.ID = 0; themTrip.LoTrinh = string.Empty; themTrip.LoTrinh_Diem = string.Empty; themTrip.KmDuKien = 0; themTrip.TrangThai = (int)Enum_XeBaoDiDuongDai_TrangThai.ChoGhepKhach; themTrip.CreatedDate = TaxiReturn_Process.timerServer; themTrip.CreatedByUser = ThongTinDangNhap.USER_ID; themTrip.UpdatedDate = null; themTrip.UpdatedByUser = string.Empty; // thời điểm bắt đầu của lái xe. themTrip.ThoiDiemDi = themTrip.TGDuKien; //_modelDetail.B themTrip.DiaDiemDen = _model.ToAdress; //address.Text = themTrip.DiaDiemDen; //address.ReSearch(); themTrip.FK_QuanHuyenDenID = address.HuyenId; themTrip.FK_TinhThanhDenID = address.TinhId; themTrip.Den_ViDo = _model.ToLat; themTrip.Den_KinhDo = _model.ToLng; //lấy tọa độ của xe. var _xeOnline = WCFService_Common.GetXeOnlineBySHX(themTrip.FK_SoHieuXe); themTrip.Xe_KinhDo = _xeOnline.KinhDo; themTrip.Xe_ViDo = _xeOnline.ViDo; // Lộ trình này là lộ trình của điểm DC var lotrinh = TaxiReturn_Process.LayLoTrinh(themTrip.Di_ViDo, themTrip.Di_KinhDo, themTrip.Den_ViDo, themTrip.Den_KinhDo); themTrip.LoTrinh = lotrinh.LoTrinh_DiaChi; themTrip.LoTrinh_Diem = lotrinh.LoTrinh_ToaDo; themTrip.KmDuKien = (int)lotrinh.Distance; //Tính thời gian đi của book. int SoPhutDiQuangDuongBC = TaxiReturn_Process.TinhThoiGianDiHetQuangDuong(_model.BC_Route_Distance); themTrip.TGDuKien = themTrip.TGDuKien.AddMinutes(SoPhutDiQuangDuongBC); // là thời điểm đến điểm C. themTrip.ThoiDiemVe = themTrip.TGDuKien; Xe objXe1 = new Xe().GetChiTietXe(themTrip.FK_SoHieuXe); if (objXe1 != null) { themTrip.BienSoXe = objXe1.BienKiemSoat; TinhTienTheoKm objTinhTien = new TinhTienTheoKm(objXe1.LoaiXeID, themTrip.KmDuKien); themTrip.TienDuKien = objTinhTien.TongTien1Chieu; } } } catch (Exception) { } #endregion if (themTrip.KmDuKien >= g_KmDuKien) { rs = new MessageBox.MessageBoxBA().Show("Xe này có muốn đón cuốc chiều về khác không ?", "Thông báo", MessageBoxButtons.YesNo); } if (rs == "Yes") { themTrip.Insert(); } themTrip.UpdateStatusV2(_model.FK_TaxiReturn, Enum_XeBaoDiDuongDai_TrangThai.None, ThongTinDangNhap.USER_ID, true, Enum_Bookings_OpStatus.MobileKetThuc, _model.PK_BooID); #region Send server try { TaxiReturn_Process.TripUpdateStatus(_model.FK_TaxiReturn, G_XNCode, Services.FastTaxi_OperationService.Trip.Status.KetThuc); if (rs == "Yes" && themTrip.ID > 0) { var rsBoot = TaxiReturn_Process.ReplaceTrip(themTrip.ParentID, themTrip); themTrip.UpdateIsAddedStaxi(themTrip.ID, ThongTinDangNhap.USER_ID, rsBoot); } } catch (Exception ex) { new Log().WriteLog(ThongTinDangNhap.USER_ID, "Lưu trên form khách cần xe", DateTime.Now, "Gửi lên server sảy ra lỗi:" + ex.Message); } //chỉ cần Kết thúc cái Book chưa có hàm gửi lên server try { // if (!G_DoNotSendToServer) TaxiReturn_Process.FinishVehicleReturn(_model.ClientKey); } catch (Exception ex) { new Log().WriteLog(ThongTinDangNhap.USER_ID, "Lưu trên form khách cần xe", DateTime.Now, "Gửi lên server sảy ra lỗi:" + ex.Message); } #endregion } catch (Exception ex) { new Log().WriteLog(ThongTinDangNhap.USER_ID, "Lưu trên form khách cần xe", DateTime.Now, "Cập nhật dữ liệu lỗi:" + ex.Message); } } #endregion #region Mobile chưa gặp xe else { try { #region Điều hành kết thúc string rs = string.Empty; var themTrip = new XeDiDuongDai(); var address = new AutoCompleteAddress(); address.Bind(); #region Khởi tạo trip mới và chưa lưu themTrip.ID = _model.FK_TaxiReturn; try { //Thiếu : Thêm ID cha vào để quan hệ if (themTrip.GetByKey()) { themTrip.ParentID = _model.FK_TaxiReturn; themTrip.ID = 0; themTrip.LoTrinh = string.Empty; themTrip.LoTrinh_Diem = string.Empty; themTrip.KmDuKien = 0; themTrip.TrangThai = (int)Enum_XeBaoDiDuongDai_TrangThai.ChoGhepKhach; themTrip.CreatedDate = TaxiReturn_Process.timerServer; themTrip.CreatedByUser = ThongTinDangNhap.USER_ID; themTrip.UpdatedDate = null; themTrip.UpdatedByUser = string.Empty; // thời điểm bắt đầu của lái xe. themTrip.ThoiDiemDi = themTrip.TGDuKien; //_modelDetail.B themTrip.DiaDiemDen = _model.ToAdress; //address.Text = themTrip.DiaDiemDen; //address.ReSearch(); themTrip.FK_QuanHuyenDenID = address.HuyenId; themTrip.FK_TinhThanhDenID = address.TinhId; themTrip.Den_ViDo = _model.ToLat; themTrip.Den_KinhDo = _model.ToLng; //lấy tọa độ của xe. var _xeOnline = WCFService_Common.GetXeOnlineBySHX(themTrip.FK_SoHieuXe); themTrip.Xe_KinhDo = _xeOnline.KinhDo; themTrip.Xe_ViDo = _xeOnline.ViDo; // Lộ trình này là lộ trình của điểm DC var lotrinh = TaxiReturn_Process.LayLoTrinh(themTrip.Di_ViDo, themTrip.Di_KinhDo, themTrip.Den_ViDo, themTrip.Den_KinhDo); themTrip.LoTrinh = lotrinh.LoTrinh_DiaChi; themTrip.LoTrinh_Diem = lotrinh.LoTrinh_ToaDo; themTrip.KmDuKien = (int)lotrinh.Distance; //Tính thời gian đi của book. int SoPhutDiQuangDuongBC = TaxiReturn_Process.TinhThoiGianDiHetQuangDuong(_model.BC_Route_Distance); themTrip.TGDuKien = themTrip.TGDuKien.AddMinutes(SoPhutDiQuangDuongBC); // là thời điểm đến điểm C. themTrip.ThoiDiemVe = themTrip.TGDuKien; Xe objXe1 = new Xe().GetChiTietXe(themTrip.FK_SoHieuXe); if (objXe1 != null) { themTrip.BienSoXe = objXe1.BienKiemSoat; TinhTienTheoKm objTinhTien = new TinhTienTheoKm(objXe1.LoaiXeID, themTrip.KmDuKien); themTrip.TienDuKien = objTinhTien.TongTien1Chieu; } } } catch (Exception) { } #endregion if (themTrip.KmDuKien >= g_KmDuKien) { rs = new MessageBox.MessageBoxBA().Show("Xe này có muốn đón cuốc chiều về khác không ?", "Thông báo", MessageBoxButtons.YesNo); } #region nếu chọn đón cuốc chiều về khác thì Thêm mới Trip if (rs == "Yes") { themTrip.Insert(); } themTrip.UpdateStatusV2(_model.FK_TaxiReturn, Enum_XeBaoDiDuongDai_TrangThai.None, ThongTinDangNhap.USER_ID, true, Enum_Bookings_OpStatus.KetThuc, _model.PK_BooID); #endregion #region Send server try { TaxiReturn_Process.TripUpdateStatus(_model.FK_TaxiReturn, G_XNCode, Services.FastTaxi_OperationService.Trip.Status.KetThuc); if (rs == "Yes" && themTrip.ID > 0) { var rsBoot = TaxiReturn_Process.ReplaceTrip(themTrip.ParentID, themTrip); themTrip.UpdateIsAddedStaxi(themTrip.ID, ThongTinDangNhap.USER_ID, rsBoot); } } catch (Exception ex) { new Log().WriteLog(ThongTinDangNhap.USER_ID, "Lưu trên form khách cần xe", DateTime.Now, "Gửi lên server sảy ra lỗi:" + ex.Message); } //chỉ cần Kết thúc cái Book chưa có hàm gửi lên server try { //if (!G_DoNotSendToServer) TaxiReturn_Process.FinishVehicleReturn(_model.ClientKey); } catch (Exception ex) { new Log().WriteLog(ThongTinDangNhap.USER_ID, "Lưu trên form khách cần xe", DateTime.Now, "Gửi lên server sảy ra lỗi:" + ex.Message); } #endregion #endregion } catch (Exception ex) { new Log().WriteLog(ThongTinDangNhap.USER_ID, "Kết thúc trên lưới Book", DateTime.Now, "Gửi lên server sảy ra lỗi:" + ex.Message); new MessageBox.MessageBoxBA().Show("Quá trình xử lý sảy ra lỗi vui lòng liên hệ với quản trị"); } } #endregion } #endregion }
/// <summary> /// Thực hiện thao tác lưu trữ dữ liệu. /// </summary> public void DoSave() { var fw = new ProgressBar(); try { if (Model.ID <= 0) { Model.CreatedByUser = ThongTinDangNhap.USER_ID; Model.CreatedDate = TaxiReturn_Process.timerServer; Model.Insert(); #region Xử lý thông tin gửi lên server if (ckb1Chieu.Checked && ckbFastTaxi.Visible && ckbFastTaxi.Checked && lue_TrangThaiDuyet.EditValue.To <int>() == (int)Enum_XeBaoDiDuongDai_TrangThaiDuyet.DaDuyet) { if (Distance >= 500) { ShowError("Hệ thống Staxi không hỗ trợ cuốc đi đường dài lớn hơn 500 km"); } else { fw.Show(); var rs = TaxiReturn_Process.AddTrip(Model); fw.Close(); if (rs != null && rs.AddTripSuccess) { //Add Trip lên server Thành Công Model.IsAddedStaxi = true; } else { //Add Trip lên server thất bại Model.IsAddedStaxi = false; } // cập nhật trạng thái Model.UpdateIsAddedStaxi(Model.ID, ThongTinDangNhap.USER_ID, Model.IsAddedStaxi); #region Quét xem có booking đề cử cho cuốc chiều về này hay ko //kiểm tra Có danh sách các book đề cử cho xe này. if (rs != null && rs.TripBookingsSend != null && rs.TripBookingsSend.Bookings.Length > 0) { frmListBooking frm = new frmListBooking() { rs = rs.TripBookingsSend, Books = rs.TripBookingsSend.Bookings, G_TongTien = G_TongTien }; if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK) { if (frm.Book != null) //chấp nhận { var book = new Booking(); book.PK_BooID = frm.Book.PK_BooID; if (!book.GetByKey()) //trường hợp server chưa đẩy về thì sẽ tự động thêm book đã đc chấp nhận. { //Tạo book mới trên hệ thống. // dán lại xe nào được chấp nhận. book = ParseBooking(frm.Book); book.FK_TaxiReturn = rs.TripBookingsSend.TripID; book.OpVehicle = Model.FK_SoHieuXe; book.OpStatus = (int)Enum_Bookings_OpStatus.ChapNhan; book.OpAcceptedUser = ThongTinDangNhap.USER_ID; book.OpAcceptedTime = book.GetTimeServer(); book.CreatedDate = book.OpAcceptedTime; book.Insert(); //Tạo book deltail trên hệ thống. BookingsDetail detail = new BookingsDetail(); detail.TripID = Model.ID; detail.FK_BookID = book.PK_BooID; // detail.CalF var AB = TaxiReturn_Process.LayLoTrinh(Model.Den_ViDo, Model.Den_KinhDo, book.FromLat, book.FromLng); detail.ABRoute = AB.LoTrinh_ToaDo; var CD = TaxiReturn_Process.LayLoTrinh(book.ToLat, book.ToLng, Model.Di_ViDo, Model.Di_KinhDo); detail.CDRoute = CD.LoTrinh_ToaDo; detail.Status = (int)Enum_BookingsDetail_Status.DuocChapNhan; detail.DateUpdated = TaxiReturn_Process.timerServer; detail.Insert(); } else { // dán lại xe nào được chấp nhận. book.FK_TaxiReturn = rs.TripBookingsSend.TripID; book.OpVehicle = Model.FK_SoHieuXe; book.OpStatus = (int)Enum_Bookings_OpStatus.ChapNhan; book.OpAcceptedUser = ThongTinDangNhap.USER_ID; book.OpAcceptedTime = book.GetTimeServer(); book.Update(); } book.DaDieuDuocXe(frm.Book.PK_BooID, rs.TripBookingsSend.TripID, ThongTinDangNhap.USER_ID, ThongTinCauHinh.CompanyID); } else // Hủy điều { //Xác nhận hủy điều. if (new MessageBox.MessageBoxBA().Show("Bạn có muốn hủy cuốc này không", "Thông báo", MessageBox.MessageBoxButtonsBA.YesNo) == "Yes") { if (_model != null && _model.ID > 0) { _model.UpdatedByUser = ThongTinDangNhap.USER_ID; _model.HuyDieu(); TaxiReturn_Process.TripUpdateStatus(_model.ID, ThongTinCauHinh.CompanyID, Services.FastTaxi_OperationService.Trip.Status.HuyDieu); } } } } } #endregion } } #endregion DialogResult = DialogResult.OK; this.BeginInvoke((Action)(() => this.Close())); } else { Model.UpdatedByUser = ThongTinDangNhap.USER_ID; Model.UpdatedDate = TaxiReturn_Process.timerServer; Model.Update(); #region Gửi lên server if (ckb1Chieu.Checked && ckbFastTaxi.Visible && ckbFastTaxi.Checked && lue_TrangThaiDuyet.EditValue.To <int>() == (int)Enum_XeBaoDiDuongDai_TrangThaiDuyet.DaDuyet) { if (Distance >= 500) { ShowError("Hệ thống Staxi không hỗ trợ cuốc đi đường dài lớn hơn 500 km"); } else { //nếu gửi rồi thì sẽ EditTrip if (Model.IsAddedStaxi) { TaxiReturn_Process.EditTrip(Model); } else // Chưa gửi lên thì sẽ AddTrip { var rs = TaxiReturn_Process.AddTrip(Model); if (rs != null) { // cập nhật trạng thái Model.UpdateIsAddedStaxi(Model.ID, ThongTinDangNhap.USER_ID, rs.AddTripSuccess); } } } } #endregion DialogResult = DialogResult.OK; try { this.BeginInvoke((Action)(() => this.Close())); } catch (Exception ex) { } } if (Model.IsKetThuc) { Model.UpdateStatus(Model.ID, Enum_XeBaoDiDuongDai_TrangThai.None, ThongTinDangNhap.USER_ID, true); TaxiReturn_Process.TripUpdateStatus(Model.ID, ThongTinCauHinh.CompanyID, Services.FastTaxi_OperationService.Trip.Status.KetThuc); } } catch (Exception ex) { try { fw.Invoke((MethodInvoker)fw.Close); } catch (Exception ex2) { new MessageBox.MessageBoxBA().Show("fw:" + ex2.Message); } new MessageBox.MessageBoxBA().Show("Lỗi ngoại lệ xảy ra:" + ex.Message); } }