|
@@ -4259,8 +4259,6 @@ namespace OASystem.API.Controllers
|
|
|
string Url = AppSettingsHelper.Get("WordBaseUrl") + "Office/Word/" + strFileName;
|
|
|
return Ok(JsonView(true, "成功!", Url));
|
|
|
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
@@ -4292,7 +4290,6 @@ namespace OASystem.API.Controllers
|
|
|
public async Task<IActionResult> ConfirmWord(HotelReservationsByIdDto dto)
|
|
|
{
|
|
|
|
|
|
-
|
|
|
Grp_DelegationInfo di = _sqlSugar.Queryable<Grp_DelegationInfo>().First(a => a.Id == dto.Id);
|
|
|
|
|
|
|
|
@@ -4338,14 +4335,12 @@ namespace OASystem.API.Controllers
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
Dictionary<string, string> dic = new Dictionary<string, string>();
|
|
|
dic.Add("Dele", di.TeamName);
|
|
|
dic.Add("City", di.VisitCountry);
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
string tempPath = AppSettingsHelper.Get("WordBasePath") + "Template/酒店用房确认单-模板.doc";
|
|
|
|
|
|
Aspose.Words.Document doc = new Aspose.Words.Document(tempPath);
|
|
@@ -4402,8 +4397,6 @@ namespace OASystem.API.Controllers
|
|
|
throw;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
|
|
|
|
|
@@ -4533,7 +4526,6 @@ namespace OASystem.API.Controllers
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
@@ -4676,6 +4668,416 @@ namespace OASystem.API.Controllers
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> PostHotelReservationsDel(HotelReservationsDelDto _dto)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ #region 参数验证
|
|
|
+ if (_dto.UserId < 1) return Ok(JsonView(false, "员工Id为空"));
|
|
|
+ if (_dto.PageId < 1) _dto.PageId = 28;
|
|
|
+ if (_dto.DiId < 1) return Ok(JsonView(false, "团组Id为空"));
|
|
|
+
|
|
|
+ #region 团组操作权限验证 76 酒店预定模块
|
|
|
+ var groupAuthView = await GeneralMethod.PostGroupOperationAuth(_dto.DiId, _dto.UserId, 76);
|
|
|
+ if (groupAuthView.Code != 0) return Ok(JsonView(false, groupAuthView.Msg));
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ PageFunAuthViewBase pageFunAuthView = new PageFunAuthViewBase();
|
|
|
+
|
|
|
+ #region 页面操作权限验证
|
|
|
+ pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(_dto.UserId, _dto.PageId);
|
|
|
+
|
|
|
+ if (pageFunAuthView.DeleteAuth == 0) return Ok(JsonView(false, "您没有删除权限!"));
|
|
|
+
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ Result data = await _hotelPriceRep._Del(_dto.Id, _dto.UserId);
|
|
|
+ if (data.Code != 0)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, data.Msg));
|
|
|
+ }
|
|
|
+ return Ok(JsonView(true, data.Msg, data.Data));
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, ex.Message));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> PostHotelReservationsCreateVoucher(HotelReservationsCreateVoucherDto _dto)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ #region 参数验证
|
|
|
+ if (_dto.UserId < 1) return Ok(JsonView(false, "员工Id为空"));
|
|
|
+ if (_dto.PageId < 1) _dto.PageId = 28;
|
|
|
+ if (_dto.DiId < 1) return Ok(JsonView(false, "团组Id为空"));
|
|
|
+
|
|
|
+ #region 团组操作权限验证 76 酒店预定模块
|
|
|
+ var groupAuthView = await GeneralMethod.PostGroupOperationAuth(_dto.DiId, _dto.UserId, 76);
|
|
|
+ if (groupAuthView.Code != 0) return Ok(JsonView(false, groupAuthView.Msg));
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ PageFunAuthViewBase pageFunAuthView = new PageFunAuthViewBase();
|
|
|
+
|
|
|
+ #region 页面操作权限验证
|
|
|
+ pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(_dto.UserId, _dto.PageId);
|
|
|
+
|
|
|
+ if (pageFunAuthView.FilesDownloadAuth == 0) return Ok(JsonView(false, "您没有文件下载权限!"));
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+
|
|
|
+ Grp_HotelReservations hr = await _sqlSugar.Queryable<Grp_HotelReservations>().Where(it => it.IsDel == 0 && it.Id == _dto.Id).FirstAsync();
|
|
|
+
|
|
|
+
|
|
|
+ if (hr != null)
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrEmpty(hr.DetermineNo))
|
|
|
+ {
|
|
|
+ string strFileName = "HotelStatement/";
|
|
|
+ Grp_DelegationInfo dele = await _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0 && it.Id == _dto.DiId).FirstAsync();
|
|
|
+ if (dele != null)
|
|
|
+ strFileName += dele.TourCode;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ string sss = AppSettingsHelper.Get("WordBasePath") + "Template/酒店预订模板.doc";
|
|
|
+
|
|
|
+ Document doc = new Document(sss);
|
|
|
+ DocumentBuilder builder = new DocumentBuilder(doc);
|
|
|
+
|
|
|
+ #region 替换Word模板书签内容
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["VNO"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["VNO"];
|
|
|
+ mark.Text = hr.CheckNumber;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["Date"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["Date"];
|
|
|
+ mark.Text = Convert.ToDateTime(hr.CreateTime).ToString("yyyy-MM-dd");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["TNo"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["TNo"];
|
|
|
+ mark.Text = dele.TourCode;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["BookingId"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["BookingId"];
|
|
|
+ mark.Text = hr.ReservationsNo;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["HotelConfirmNo"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["HotelConfirmNo"];
|
|
|
+ mark.Text = hr.DetermineNo;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["City"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["City"];
|
|
|
+ mark.Text = hr.City;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["HName"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["HName"];
|
|
|
+ mark.Text = hr.HotelName;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["Address"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["Address"];
|
|
|
+ mark.Text = hr.HotelAddress;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["Tel"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["Tel"];
|
|
|
+ mark.Text = hr.HotelTel;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["Fax"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["Fax"];
|
|
|
+ if (!string.IsNullOrWhiteSpace(hr.HotelFax))
|
|
|
+ {
|
|
|
+ mark.Text = hr.HotelFax;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["CIn"] != null)
|
|
|
+ {
|
|
|
+ DateTime dtCheckIn = Convert.ToDateTime(hr.CheckInDate);
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["CIn"];
|
|
|
+ mark.Text = dtCheckIn.Day + " " + dtCheckIn.ToString("MMMM", CultureInfo.GetCultureInfo("en-US")) + " " + dtCheckIn.Year;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["COut"] != null)
|
|
|
+ {
|
|
|
+ DateTime dtCheckOut = Convert.ToDateTime(hr.CheckOutDate);
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["COut"];
|
|
|
+ mark.Text = dtCheckOut.Day + " " + dtCheckOut.ToString("MMMM", CultureInfo.GetCultureInfo("en-US")) + " " + dtCheckOut.Year;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["GName"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["GName"];
|
|
|
+ mark.Text = hr.GuestName;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["ROOM"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["ROOM"];
|
|
|
+ mark.Text = hr.RoomExplanation;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["NOTE"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["NOTE"];
|
|
|
+ Sys_SetData ss = _sqlSugar.Queryable<Sys_SetData>().First(a => a.Id == hr.ReservationsWebsite);
|
|
|
+ if (ss != null)
|
|
|
+ mark.Text = ss.Name;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["CheckIn"] != null)
|
|
|
+ {
|
|
|
+ DateTime dtCheckIn = Convert.ToDateTime(hr.CheckInDate);
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["CheckIn"];
|
|
|
+ mark.Text = dtCheckIn.Day + " " + dtCheckIn.ToString("MMMM", CultureInfo.GetCultureInfo("en-US")) + " " + dtCheckIn.Year + " ";
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["CheckOut"] != null)
|
|
|
+ {
|
|
|
+ DateTime dtCheckOut = Convert.ToDateTime(hr.CheckOutDate);
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["CheckOut"];
|
|
|
+ mark.Text = " " + dtCheckOut.Day + " " + dtCheckOut.ToString("MMMM", CultureInfo.GetCultureInfo("en-US")) + " " + dtCheckOut.Year;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["DT"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["DT"];
|
|
|
+ mark.Text = Convert.ToDateTime(hr.CreateTime).ToString("yyyy-MM-dd");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["VName"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["VName"];
|
|
|
+ mark.Text = hr.HotelName;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["VOUCHERNO"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["VOUCHERNO"];
|
|
|
+ mark.Text = hr.CheckNumber;
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ strFileName += "VOUCHER.doc";
|
|
|
+
|
|
|
+ var fileDir = AppSettingsHelper.Get("WordBasePath") + strFileName;
|
|
|
+ doc.Save(fileDir);
|
|
|
+ string Url = AppSettingsHelper.Get("WordBaseUrl") + "Office/Word/" + strFileName;
|
|
|
+ return Ok(JsonView(true, "操作成功!", Url));
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "酒店确定号码未填写,无法生成Voucher!"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "该条数据已删除或不存在!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+
|
|
|
+ return Ok(JsonView(false, ex.Message));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> PostHotelReservationsConfirmationSlip(HotelReservationsConfirmationSlipDto _dto)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ #region 参数验证
|
|
|
+ if (_dto.UserId < 1) return Ok(JsonView(false, "员工Id为空"));
|
|
|
+ if (_dto.PageId < 1) _dto.PageId = 28;
|
|
|
+ if (_dto.DiId < 1) return Ok(JsonView(false, "团组Id为空"));
|
|
|
+
|
|
|
+ #region 团组操作权限验证 76 酒店预定模块
|
|
|
+ var groupAuthView = await GeneralMethod.PostGroupOperationAuth(_dto.DiId, _dto.UserId, 76);
|
|
|
+ if (groupAuthView.Code != 0) return Ok(JsonView(false, groupAuthView.Msg));
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ PageFunAuthViewBase pageFunAuthView = new PageFunAuthViewBase();
|
|
|
+
|
|
|
+ #region 页面操作权限验证
|
|
|
+ pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(_dto.UserId, _dto.PageId);
|
|
|
+
|
|
|
+ if (pageFunAuthView.FilesDownloadAuth == 0) return Ok(JsonView(false, "您没有文件下载权限!"));
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
+
|
|
|
+ Grp_DelegationInfo di = _sqlSugar.Queryable<Grp_DelegationInfo>().First(a => a.Id == _dto.DiId);
|
|
|
+
|
|
|
+
|
|
|
+ List<Grp_HotelReservations> listhoteldata = await _sqlSugar.Queryable<Grp_HotelReservations>().Where(a => a.DiId == _dto.DiId && a.IsDel == 0).ToListAsync();
|
|
|
+
|
|
|
+ if (listhoteldata.Count < 0)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "当前团组暂无酒店预订信息!"));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ DataTable dt = new DataTable();
|
|
|
+ dt.Columns.Add("CheckInDate", typeof(string));
|
|
|
+ dt.Columns.Add("City", typeof(string));
|
|
|
+ dt.Columns.Add("Hotel", typeof(string));
|
|
|
+ dt.Columns.Add("Room", typeof(string));
|
|
|
+
|
|
|
+ for (int i = 0; i < listhoteldata.Count; i++)
|
|
|
+ {
|
|
|
+ DateTime dayStart = Convert.ToDateTime(listhoteldata[i].CheckInDate);
|
|
|
+ DateTime dayEnd = Convert.ToDateTime(listhoteldata[i].CheckOutDate);
|
|
|
+ while (dayStart < dayEnd)
|
|
|
+ {
|
|
|
+ string temp = "";
|
|
|
+ DataRow row = dt.NewRow();
|
|
|
+ row["CheckInDate"] = dayStart.ToString("yyyy-MM-dd");
|
|
|
+ row["City"] = listhoteldata[i].City;
|
|
|
+ row["Hotel"] = listhoteldata[i].HotelName;
|
|
|
+ if (listhoteldata[i].SingleRoomCount > 0)
|
|
|
+ {
|
|
|
+ temp = listhoteldata[i].SingleRoomCount + "个单间" + "\r\n";
|
|
|
+ }
|
|
|
+ if (listhoteldata[i].DoubleRoomCount > 0)
|
|
|
+ {
|
|
|
+ temp = temp + listhoteldata[i].DoubleRoomCount + "个标间" + "\r\n";
|
|
|
+ }
|
|
|
+ if (listhoteldata[i].SuiteRoomCount > 0)
|
|
|
+ {
|
|
|
+ temp = temp + listhoteldata[i].SuiteRoomCount + "个套房" + "\r\n";
|
|
|
+ }
|
|
|
+ if (listhoteldata[i].OtherRoomCount > 0)
|
|
|
+ {
|
|
|
+ temp = temp + listhoteldata[i].OtherRoomCount + "个其他房型" + "\r\n";
|
|
|
+ }
|
|
|
+ row["Room"] = temp;
|
|
|
+ dt.Rows.Add(row);
|
|
|
+ dayStart = dayStart.AddDays(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Dictionary<string, string> dic = new Dictionary<string, string>();
|
|
|
+ dic.Add("Dele", di.TeamName);
|
|
|
+ dic.Add("City", di.VisitCountry);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ string tempPath = AppSettingsHelper.Get("WordBasePath") + "Template/酒店用房确认单-模板.doc";
|
|
|
+
|
|
|
+ Aspose.Words.Document doc = new Aspose.Words.Document(tempPath);
|
|
|
+ DocumentBuilder builder = new DocumentBuilder(doc);
|
|
|
+
|
|
|
+ foreach (var key in dic.Keys)
|
|
|
+ {
|
|
|
+ builder.MoveToBookmark(key);
|
|
|
+ builder.Write(dic[key]);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ NodeCollection allTables = doc.GetChildNodes(NodeType.Table, true);
|
|
|
+
|
|
|
+ Aspose.Words.Tables.Table tableOne = allTables[0] as Aspose.Words.Tables.Table;
|
|
|
+ var rowStart = tableOne.Rows[0];
|
|
|
+
|
|
|
+
|
|
|
+ for (int i = 0; i < dt.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ builder.MoveToCell(0, i + 1, 0, 0);
|
|
|
+ builder.Write(dt.Rows[i]["CheckInDate"].ToString());
|
|
|
+
|
|
|
+ builder.MoveToCell(0, i + 1, 1, 0);
|
|
|
+ builder.Write(dt.Rows[i]["City"].ToString());
|
|
|
+
|
|
|
+ builder.MoveToCell(0, i + 1, 2, 0);
|
|
|
+ builder.Write(dt.Rows[i]["Hotel"].ToString());
|
|
|
+
|
|
|
+ builder.MoveToCell(0, i + 1, 3, 0);
|
|
|
+ builder.Write(dt.Rows[i]["Room"].ToString());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ while (tableOne.Rows.Count > dt.Rows.Count + 1)
|
|
|
+ {
|
|
|
+ tableOne.Rows.RemoveAt(dt.Rows.Count + 1);
|
|
|
+ }
|
|
|
+ string strFileName = di.TeamName + "酒店确认单.doc";
|
|
|
+
|
|
|
+ doc.Save(AppSettingsHelper.Get("WordBasePath") + "HotelStatement/" + strFileName);
|
|
|
+ string url = AppSettingsHelper.Get("WordBaseUrl") + "Office/Word/HotelStatement/" + strFileName;
|
|
|
+ return Ok(JsonView(true, "成功", url));
|
|
|
+
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, ex.Message));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
#region 团组状态
|