Esempio n. 1
0
        public ActionResult ChuyenVe(string codename, int DatVeId, int ChuyenDiId, int SoDoGheId, string GhiChu, string checksum)
        {
            //kiem tra ket noi setting
            string _checkauthentication = isAuthentication(codename);

            if (!String.IsNullOrEmpty(_checkauthentication))
            {
                return(ErrorOccured(_checkauthentication));
            }
            //kiem tra check sum
            _checkauthentication = isRightCheckSum(checksum, codename, DatVeId.ToString(), ChuyenDiId.ToString(), SoDoGheId.ToString(), GhiChu);
            if (!String.IsNullOrEmpty(_checkauthentication))
            {
                return(ErrorOccured(_checkauthentication));
            }
            if (!_settings.isChoPhepHuy)
            {
                return(ErrorOccured("Bạn bị cấm chuyển vé"));
            }

            var chuyendi = _limousinebanveService.GetChuyenDiById(ChuyenDiId);

            if (chuyendi == null)
            {
                return(ErrorOccured("Chuyến đi không tồn tại"));
            }
            //trang thai khong hop le
            if (chuyendi.trangthai == ENTrangThaiXeXuatBen.KET_THUC || chuyendi.trangthai == ENTrangThaiXeXuatBen.HUY || chuyendi.NgayDiThuc.AddMinutes(60) < DateTime.Now)
            {
                return(ErrorOccured("Chuyến đi đã kết thúc hoặc bị hủy hoặc hết thời gian được phép thao tác"));
            }

            var _datveitemold = _limousinebanveService.GetDatVeById(DatVeId);

            if (_datveitemold == null)
            {
                return(ErrorOccured("Thông tin đặt vé không tồn tại"));
            }
            //trang thai khong hop le
            if (_datveitemold.trangthai == ENTrangThaiDatVe.HUY)
            {
                return(ErrorOccured("Vé đã bị hủy"));
            }
            //kiem tra phai cung nguoi dat ve thi moi dc huy
            if (_datveitemold.NguoiTaoId != _settings.NhanVienId)
            {
                return(ErrorOccured("Bạn không thể chuyển vé này(không thuộc sở hữu)"));
            }

            var _datveitemnew = _DatCho(chuyendi, SoDoGheId, new Guid().ToString());

            if (_datveitemnew == null)
            {
                return(ErrorOccured("Vị trí đã có người đặt chỗ"));
            }
            GhiChu = DecodeParameter(GhiChu);

            _datveitemnew.isDonTaxi         = _datveitemold.isDonTaxi;
            _datveitemnew.DiaChiNha         = _datveitemold.DiaChiNha;
            _datveitemnew.GhiChu            = GhiChu;
            _datveitemnew.DiemDonId         = _datveitemold.DiemDonId;
            _datveitemnew.KhachHangId       = _datveitemold.KhachHangId;
            _datveitemnew.isThanhToan       = _datveitemold.isThanhToan;
            _datveitemnew.isNoiBai          = _datveitemold.isNoiBai;
            _datveitemnew.trangthai         = _datveitemold.trangthai;
            _datveitemnew.isLenhDonTaXi     = _datveitemold.isLenhDonTaXi;
            _datveitemnew.MaTaXi            = _datveitemold.MaTaXi;
            _datveitemnew.isDaXacNhan       = _datveitemold.isDaXacNhan;
            _datveitemnew.TenDiemDon        = _datveitemold.TenDiemDon;
            _datveitemnew.TenDiemTra        = _datveitemold.TenDiemTra;
            _datveitemnew.VeChuyenDenId     = _datveitemold.Id;
            _datveitemnew.TenKhachHangDiKem = _datveitemold.TenKhachHangDiKem;
            //add by lent, trong truong hop chuyen tu hanh trinh khac sang hanh trinh moi, thi van luu hanh trinh nhu cu
            _datveitemnew.GiaTien     = _datveitemold.GiaTien;
            _datveitemnew.HanhTrinhId = _datveitemold.HanhTrinhId;
            _datveitemnew.LichTrinhId = _datveitemold.LichTrinhId;

            _limousinebanveService.UpdateDatVe(_datveitemnew);
            _datveitemold.trangthai = ENTrangThaiDatVe.HUY;
            _datveitemold.GhiChu    = _datveitemold.GhiChu + string.Format("Lý do hủy: Chuyển sang chuyến đi mới (Id={0})", ChuyenDiId);
            _limousinebanveService.UpdateDatVe(_datveitemold);
            // luu lai nhat ky
            var note = "HD " + _datveitemold.Ma + " được chuyển sang " + _datveitemnew.chuyendi.Ma + " lúc " + _datveitemnew.chuyendi.NgayDiThuc + " bởi " + _datveitemnew.nguoitao.HoVaTen;

            _limousinebanveService.InsertDatVeNote(_datveitemold.Id, note);

            _datveitemold.trangthai = ENTrangThaiDatVe.HUY;
            _limousinebanveService.UpdateDatVe(_datveitemold);
            return(SuccessfulSimple("OK"));
        }