public ActionResult DatVe(int HanhTrinhGiaVeId, string NgayDi)
        {
            if (this.CheckNoAccessIntoNhaXe(_workContext, _permissionService, StandardPermissionProvider.CVHoatDongBanVe))
            {
                return(AccessDeniedView());
            }

            var hanhtrinhgiave = _hanhtrinhService.GetHanhTrinhGiaVeId(HanhTrinhGiaVeId);

            var isluotdi = false;

            if (hanhtrinhgiave.HanhTrinhId > 0)
            {
                isluotdi = hanhtrinhgiave.HanhTrinh.isTuyenDi;
            }
            var item = new PhoiVe();

            item.HanhTrinhGiaVeId = HanhTrinhGiaVeId;
            item.NgayDi           = Convert.ToDateTime(NgayDi);
            item.TrangThaiId      = (int)ENTrangThaiPhoiVe.DaGiaoHang;
            item.isChonVe         = false;
            item.NguoiDatVeId     = _workContext.CurrentNhanVien.Id;
            item.GiaVeHienTai     = hanhtrinhgiave.GiaVe;
            item.NgayTao          = DateTime.Now;
            item.NgayUpd          = DateTime.Now;
            _phoiveService.ThanhToanVeTaiQuay(item);
            var vexeitems = _giaodichkeveService.BanVeTaiQuay(_workContext.NhaXeId, _workContext.CurrentNhanVien.Id, HanhTrinhGiaVeId, hanhtrinhgiave.GiaVe, isluotdi, item.NgayDi, _workContext.CurrentVanPhong.Id);

            if (vexeitems != null)
            {
                item.VeXeItemId = vexeitems.Id;
                item.MaVe       = vexeitems.SoSeri;
                _phoiveService.UpdatePhoiVe(item);
                return(ThanhCong());
            }

            return(Loi());
        }
        public ActionResult LenXeV1(int NhaXeId, int CustomerId, int XeXuatBenId, int SoDoGheXeQuyTacId, int HanhTrinhGiaVeId, string SoSeri, string DiemLen, string apiToken)
        {
            //kiem tra xac thuc
            string _checkauthentication = isAuthentication(NhaXeId, CustomerId, apiToken, XeXuatBenId);

            if (!String.IsNullOrEmpty(_checkauthentication))
            {
                return(ErrorOccured(_checkauthentication));
            }
            //kiem tra trang thai xe xuat ben
            if (xexuatben.TrangThai == ENTrangThaiXeXuatBen.KET_THUC)
            {
                return(ErrorOccured("Chuyến đi đã kết thúc"));
            }
            var giave = _hanhtrinhService.GetHanhTrinhGiaVeId(HanhTrinhGiaVeId);

            if (giave == null)
            {
                return(ErrorOccured("Dữ liệu không hợp lệ"));
            }
            var hanhtrinh = _hanhtrinhService.GetHanhTrinhById(giave.HanhTrinhId);
            var phoive    = new PhoiVe();

            if (SoDoGheXeQuyTacId > 0)
            {
                var sodo = _xeinfoService.GetSoDoGheXeQuyTacById(SoDoGheXeQuyTacId);
                if (sodo == null)
                {
                    return(ErrorOccured("Dữ liệu không hợp lệ"));
                }
                phoive = _phoiveService.GetPhoiVe(xexuatben.NguonVeId, sodo, xexuatben.NgayDi, true);
            }
            else
            {
                phoive.NguonVeXeId = xexuatben.NguonVeId;
                phoive.NgayDi      = xexuatben.NgayDi;
                phoive.TrangThai   = ENTrangThaiPhoiVe.ConTrong;
            }
            phoive.GiaVeHienTai = giave.GiaVe;
            phoive.ChangId      = HanhTrinhGiaVeId;
            phoive.ViTriLenXe   = DiemLen;
            phoive.ViTriXuongXe = giave.DiemDen.TenDiemDon;


            phoive.NguoiDatVeId = currentNhanVien.Id;
            phoive.CustomerId   = CommonHelper.KhachVangLaiId;//khach vang lai
            phoive.ChuyenDiId   = XeXuatBenId;
            if (!string.IsNullOrEmpty(SoSeri))
            {
                //su dung ve da ban o quay de len xe
                var vexeitemsold = _giaodichkeveService.SuDungVe(NhaXeId, xexuatben.NguonVeId, SoSeri, true);
                if (vexeitemsold != null)
                {
                    phoive.MaVe       = vexeitemsold.SoSeri;
                    phoive.VeXeItemId = vexeitemsold.Id;
                    phoive.ChangId    = vexeitemsold.ChangId.GetValueOrDefault(0);
                }
                else
                {
                    return(ErrorOccured("Seri vé không hợp lệ"));
                }
            }
            else
            {
                //lay thong tin ve xe item theo menh gia, va thuc hien ban ve
                var vexeitemsold = _giaodichkeveService.BanVe(NhaXeId, currentNhanVien.Id, XeXuatBenId, xexuatben.NguonVeId, HanhTrinhGiaVeId, giave.GiaVe, true);
                if (vexeitemsold != null)
                {
                    phoive.MaVe       = vexeitemsold.SoSeri;
                    phoive.VeXeItemId = vexeitemsold.Id;
                    phoive.ChangId    = HanhTrinhGiaVeId;
                }
                else
                {
                    return(ErrorOccured("Hết vé"));
                }
            }


            if (_phoiveService.DatVe(phoive, ENTrangThaiPhoiVe.DaGiaoHang))
            {
                var datveinfo = new
                {
                    Id               = phoive.Id,
                    MaVe             = phoive.MaVe,
                    VeXeItemId       = phoive.VeXeItemId,
                    HanhTrinhGiaVeId = phoive.ChangId
                };
                return(Successful(datveinfo));
            }
            return(ErrorOccured("Không đặt được ở vị trí này"));
        }