|
@@ -30,6 +30,10 @@ using NPOI.HPSF;
|
|
|
using SqlSugar;
|
|
|
using System.Collections;
|
|
|
using Org.BouncyCastle.Ocsp;
|
|
|
+using System.Globalization;
|
|
|
+using static QRCoder.PayloadGenerator;
|
|
|
+using Bookmark = Aspose.Words.Bookmark;
|
|
|
+using Aspose.Words.Fields;
|
|
|
|
|
|
namespace OASystem.API.Controllers
|
|
|
{
|
|
@@ -68,7 +72,7 @@ namespace OASystem.API.Controllers
|
|
|
public GroupsController(IMapper mapper, SqlSugarClient sqlSugar, GrpScheduleRepository grpScheduleRep, DelegationInfoRepository groupRepository,
|
|
|
TaskAssignmentRepository taskAssignmentRep, AirTicketResRepository airTicketResRep, DecreasePaymentsRepository decreasePaymentsRep,
|
|
|
InvitationOfficialActivitiesRepository InvitationOfficialActivitiesRep, DelegationEnDataRepository delegationEnDataRep, EnterExitCostRepository enterExitCostRep
|
|
|
- , DelegationVisaRepository delegationVisaRep, MessageRepository message,VisaPriceRepository visaPriceRep,CarTouristGuideGroundRepository carTouristGuideGroundRep,CheckBoxsRepository checkBoxs, GroupCostRepository GroupCostRepository, CostTypeHotelNumberRepository CostTypeHotelNumberRepository,
|
|
|
+ , DelegationVisaRepository delegationVisaRep, MessageRepository message, VisaPriceRepository visaPriceRep, CarTouristGuideGroundRepository carTouristGuideGroundRep, CheckBoxsRepository checkBoxs, GroupCostRepository GroupCostRepository, CostTypeHotelNumberRepository CostTypeHotelNumberRepository,
|
|
|
GroupCostParameterRepository GroupCostParameterRepository, HotelPriceRepository hotelPriceRep)
|
|
|
{
|
|
|
_mapper = mapper;
|
|
@@ -89,8 +93,8 @@ namespace OASystem.API.Controllers
|
|
|
_enterExitCostRep = enterExitCostRep;
|
|
|
_delegationVisaRep = delegationVisaRep;
|
|
|
_message = message;
|
|
|
- _visaPriceRep= visaPriceRep;
|
|
|
- _carTouristGuideGroundRep= carTouristGuideGroundRep;
|
|
|
+ _visaPriceRep = visaPriceRep;
|
|
|
+ _carTouristGuideGroundRep = carTouristGuideGroundRep;
|
|
|
_checkBoxs = checkBoxs;
|
|
|
_GroupCostRepository = GroupCostRepository;
|
|
|
_CostTypeHotelNumberRepository = CostTypeHotelNumberRepository;
|
|
@@ -98,7 +102,7 @@ namespace OASystem.API.Controllers
|
|
|
_hotelPriceRep = hotelPriceRep;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
#region 流程管控
|
|
|
|
|
|
|
|
@@ -298,17 +302,17 @@ namespace OASystem.API.Controllers
|
|
|
RefAsync<int> total = 0;
|
|
|
var _DelegationList = await _sqlSugar.SqlQueryable<DelegationListView>(sql).ToPageListAsync(dto.PageIndex, dto.PageSize, total);
|
|
|
|
|
|
- return Ok(JsonView(true,"查询成功!",_DelegationList, total));
|
|
|
+ return Ok(JsonView(true, "查询成功!", _DelegationList, total));
|
|
|
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
return Ok(JsonView(false, "查询失败"));
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
@@ -444,10 +448,10 @@ namespace OASystem.API.Controllers
|
|
|
|
|
|
GroupStepForDelegation.CreateWorkStep(dto.GroupId);
|
|
|
|
|
|
- return Ok(JsonView(true,"操作成功!",groupData.Data));
|
|
|
+ return Ok(JsonView(true, "操作成功!", groupData.Data));
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -702,10 +706,11 @@ namespace OASystem.API.Controllers
|
|
|
.SetColumns(it => it.WorkStatus == dto.visaStatus)
|
|
|
.Where(s => s.Id == dto.visaProgressCustomerId)
|
|
|
.ExecuteCommandAsync();
|
|
|
- if (updCount > 0 && dto.publishCode == 1) {
|
|
|
+ if (updCount > 0 && dto.publishCode == 1)
|
|
|
+ {
|
|
|
|
|
|
_delegationVisaRep.ChangeDataBase(DBEnum.OA2014DB);
|
|
|
-
|
|
|
+
|
|
|
string sqlDelegation = string.Format(@" Select * From DelegationInfo With(Nolock) Where Id = {0} ", dto.diId);
|
|
|
OA2021_DelegationInfo groupData = _sqlSugar.SqlQueryable<OA2021_DelegationInfo>(sqlDelegation).First();
|
|
|
|
|
@@ -731,7 +736,8 @@ namespace OASystem.API.Controllers
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- if (rst) {
|
|
|
+ if (rst)
|
|
|
+ {
|
|
|
return Ok(JsonView(true, "发送通知成功"));
|
|
|
}
|
|
|
}
|
|
@@ -2795,14 +2801,14 @@ namespace OASystem.API.Controllers
|
|
|
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
public async Task<IActionResult> GetNationalTravelFeePageDataSource()
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
string sql = string.Format(@"Select * From Grp_NationalTravelFee Where Isdel = 0 ");
|
|
|
|
|
|
var nationalTravelFeeData = await _groupRepository._sqlSugar.SqlQueryable<Grp_NationalTravelFee>(sql).ToListAsync();
|
|
|
|
|
|
List<string> countryData = new List<string>();
|
|
|
|
|
|
- countryData.AddRange( nationalTravelFeeData.Select(it => it.Country ).ToList());
|
|
|
+ countryData.AddRange(nationalTravelFeeData.Select(it => it.Country).ToList());
|
|
|
countryData = countryData.Distinct().ToList();
|
|
|
|
|
|
List<dynamic> dataSource = new List<dynamic>();
|
|
@@ -2815,7 +2821,7 @@ namespace OASystem.API.Controllers
|
|
|
CountryName = item,
|
|
|
CityData = cityData1
|
|
|
};
|
|
|
-
|
|
|
+
|
|
|
dataSource.Add(countryData2);
|
|
|
}
|
|
|
|
|
@@ -2831,9 +2837,9 @@ namespace OASystem.API.Controllers
|
|
|
public async Task<IActionResult> PostNationalTravelFeePage(NationalTravelFeePageDto dto)
|
|
|
{
|
|
|
int portId = dto.PortType;
|
|
|
- if (portId != 1 && portId != 2 && portId != 3) return Ok(JsonView(false, "请输入正确的端口号!\r\n请求端口分类1 Web 2 Android 3 IOS"));
|
|
|
+ if (portId != 1 && portId != 2 && portId != 3) return Ok(JsonView(false, "请输入正确的端口号!\r\n请求端口分类1 Web 2 Android 3 IOS"));
|
|
|
|
|
|
- if (dto.PageIndex == 0) return Ok(JsonView(false, "当前页码数不能为0!"));
|
|
|
+ if (dto.PageIndex == 0) return Ok(JsonView(false, "当前页码数不能为0!"));
|
|
|
if (dto.PageSize == 0) return Ok(JsonView(false, "每页条数不能0!"));
|
|
|
|
|
|
string whereSql = string.Empty;
|
|
@@ -2887,7 +2893,7 @@ namespace OASystem.API.Controllers
|
|
|
whereSql = string.Format(@"And City = '{0}' ", dto.City);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
string sql = string.Format(@"Select gntf.Country,gntf.City,gntf.Currency,ssd.Name as CurrencyCode,
|
|
|
ssd.Remark as CurrencyName,gntf.RoomCost,gntf.FoodCost,gntf.PublicCost,
|
|
|
gntf.LastUpdateUserId,su.CnName as LastUpdateUserName,gntf.LastUpdateTime
|
|
@@ -2939,7 +2945,8 @@ namespace OASystem.API.Controllers
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- Grp_NationalTravelFee _nationalTravelFee = new Grp_NationalTravelFee() {
|
|
|
+ Grp_NationalTravelFee _nationalTravelFee = new Grp_NationalTravelFee()
|
|
|
+ {
|
|
|
Id = dto.Id,
|
|
|
DeleteUserId = dto.DeleteUserId,
|
|
|
DeleteTime = DateTime.Now.ToString("yyyy-MM-dd"),
|
|
@@ -3077,7 +3084,7 @@ namespace OASystem.API.Controllers
|
|
|
PassengerType = _PassengerType,
|
|
|
BankCard = _BankCard
|
|
|
};
|
|
|
- return Ok(JsonView(true, "查询成功!",data));
|
|
|
+ return Ok(JsonView(true, "查询成功!", data));
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
@@ -3146,8 +3153,8 @@ namespace OASystem.API.Controllers
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- Grp_CarTouristGuideGroundReservations _groupData = await _sqlSugar.Queryable<Grp_CarTouristGuideGroundReservations>().FirstAsync(a=>a.Id==dto.Id && a.IsDel==0);
|
|
|
- Grp_CreditCardPayment _creditCardPayment = await _sqlSugar.Queryable<Grp_CreditCardPayment>().FirstAsync(a => a.CId == dto.Id && a.CTable==79 && a.IsDel == 0);
|
|
|
+ Grp_CarTouristGuideGroundReservations _groupData = await _sqlSugar.Queryable<Grp_CarTouristGuideGroundReservations>().FirstAsync(a => a.Id == dto.Id && a.IsDel == 0);
|
|
|
+ Grp_CreditCardPayment _creditCardPayment = await _sqlSugar.Queryable<Grp_CreditCardPayment>().FirstAsync(a => a.CId == dto.Id && a.CTable == 79 && a.IsDel == 0);
|
|
|
var data = new
|
|
|
{
|
|
|
CarTouristGuideGround = _groupData,
|
|
@@ -3308,9 +3315,9 @@ namespace OASystem.API.Controllers
|
|
|
ELSE 'False' END as isTrue from Grp_GroupCost where Isdel = 0 and date != '' group by Diid) b on a.Id = b.Diid
|
|
|
Where TeamName != '' And IsDel = 0 Order By a.Id Desc
|
|
|
").ToList(); //团组列表
|
|
|
- int diid = dto.Diid == - 1 ? groupList.First().Id : dto.Diid;
|
|
|
- var groupInfo = await _groupRepository.PostShareGroupInfo(new ShareGroupInfoDto { PortType = 1 , Id = diid });
|
|
|
- var groupChecks = _checkBoxs.GetCheckBoxsByDiid(diid);
|
|
|
+ int diid = dto.Diid == -1 ? groupList.First().Id : dto.Diid;
|
|
|
+ var groupInfo = await _groupRepository.PostShareGroupInfo(new ShareGroupInfoDto { PortType = 1, Id = diid });
|
|
|
+ var groupChecks = _checkBoxs.GetCheckBoxsByDiid(diid);
|
|
|
var groupCost = _GroupCostRepository.GetAllByDiid(diid);
|
|
|
var groupCostMap = _mapper.Map<List<Grp_GroupCostDto>>(groupCost);
|
|
|
var hotelNumber = _CostTypeHotelNumberRepository.GetCostTypeHotelNumberByDiid(diid);
|
|
@@ -3320,7 +3327,8 @@ namespace OASystem.API.Controllers
|
|
|
|
|
|
var GroupCostParameterMap = _mapper.Map<List<Grp_GroupCostParameterDto>>(GroupCostParameter);
|
|
|
|
|
|
- return Ok(JsonView(new {
|
|
|
+ return Ok(JsonView(new
|
|
|
+ {
|
|
|
groupList,
|
|
|
groupInfo,
|
|
|
groupChecks,
|
|
@@ -3341,7 +3349,7 @@ namespace OASystem.API.Controllers
|
|
|
JsonView jw = null;
|
|
|
bool isTrue = false;
|
|
|
var Grp_groups = _mapper.Map<List<Grp_GroupCost>>(dto.GroupCosts);
|
|
|
- Grp_groups.ForEach(x => { x.CreateUserId = dto.Userid; x.CreateTime = DateTime.Now;});
|
|
|
+ Grp_groups.ForEach(x => { x.CreateUserId = dto.Userid; x.CreateTime = DateTime.Now; });
|
|
|
var Grp_CheckBoxs = _mapper.Map<List<Grp_CheckBoxs>>(dto.CheckBoxs);
|
|
|
Grp_CheckBoxs.ForEach(x => { x.CreateUserId = dto.Userid; x.CreateTime = DateTime.Now; });
|
|
|
var Grp_HotelNumber = _mapper.Map<List<Grp_CostTypeHotelNumber>>(dto.CostTypeHotelNumbers);
|
|
@@ -3350,13 +3358,13 @@ namespace OASystem.API.Controllers
|
|
|
try
|
|
|
{
|
|
|
_sqlSugar.BeginTran();
|
|
|
- isTrue = await _GroupCostRepository.SaveGroupCostList(Grp_groups,dto.Diid);
|
|
|
- isTrue = await _checkBoxs.SaveCheckBoxs(Grp_CheckBoxs,dto.Diid);
|
|
|
- isTrue = await _CostTypeHotelNumberRepository.SaveHotelNumber(Grp_HotelNumber,dto.Diid);
|
|
|
+ isTrue = await _GroupCostRepository.SaveGroupCostList(Grp_groups, dto.Diid);
|
|
|
+ isTrue = await _checkBoxs.SaveCheckBoxs(Grp_CheckBoxs, dto.Diid);
|
|
|
+ isTrue = await _CostTypeHotelNumberRepository.SaveHotelNumber(Grp_HotelNumber, dto.Diid);
|
|
|
isTrue = await _GroupCostParameterRepository.SaveAsync(Grp_CostParameters, dto.Diid);
|
|
|
|
|
|
_sqlSugar.CommitTran();
|
|
|
- jw = JsonView(true,"保存成功!",isTrue);
|
|
|
+ jw = JsonView(true, "保存成功!", isTrue);
|
|
|
}
|
|
|
catch (Exception)
|
|
|
{
|
|
@@ -3503,17 +3511,17 @@ namespace OASystem.API.Controllers
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
[HttpPost]
|
|
|
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
- public async Task<IActionResult> OpHotelReservations(OpHotelReservationsData dto)
|
|
|
+ public async Task<IActionResult> HotelConversionAmounts(HotelReservationsCNYDto dto)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- Result groupData = await _hotelPriceRep.OpHotelReservations(dto);
|
|
|
+ Result groupData = await _hotelPriceRep.HotelConversionAmounts(dto);
|
|
|
if (groupData.Code != 0)
|
|
|
{
|
|
|
return Ok(JsonView(false, groupData.Msg));
|
|
@@ -3525,18 +3533,19 @@ namespace OASystem.API.Controllers
|
|
|
return Ok(JsonView(false, ex.Message));
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
[HttpPost]
|
|
|
[ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
- public async Task<IActionResult> HotelConversionAmounts(HotelReservationsCNYDto dto)
|
|
|
+ public async Task<IActionResult> OpHotelReservations(OpHotelReservationsData dto)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- Result groupData = await _hotelPriceRep.HotelConversionAmounts(dto);
|
|
|
+ Result groupData = await _hotelPriceRep.OpHotelReservations(dto);
|
|
|
if (groupData.Code != 0)
|
|
|
{
|
|
|
return Ok(JsonView(false, groupData.Msg));
|
|
@@ -3548,9 +3557,418 @@ namespace OASystem.API.Controllers
|
|
|
return Ok(JsonView(false, ex.Message));
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> UploadHotel(IFormFile file)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ if (file != null)
|
|
|
+ {
|
|
|
+ var fileDir = AppSettingsHelper.Get("GrpFileBasePath");
|
|
|
+
|
|
|
+ string projectFileName = file.FileName;
|
|
|
+
|
|
|
+
|
|
|
+ string filePath = "";
|
|
|
+
|
|
|
+
|
|
|
+ if (!Directory.Exists(fileDir))
|
|
|
+ {
|
|
|
+ Directory.CreateDirectory(fileDir);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ filePath = fileDir + $@"\酒店费用录入相关文件\{projectFileName}";
|
|
|
+
|
|
|
+
|
|
|
+ using (FileStream fs = System.IO.File.Create(filePath))
|
|
|
+ {
|
|
|
+ file.CopyTo(fs);
|
|
|
+ fs.Flush();
|
|
|
+ }
|
|
|
+ return Ok(JsonView(true, "上传成功!", projectFileName));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "上传失败!"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "程序错误!"));
|
|
|
+ throw;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> DelFileHotel(DelFileDto dto)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ string filePath = "";
|
|
|
+ var fileDir = AppSettingsHelper.Get("GrpFileBasePath");
|
|
|
+
|
|
|
+ int id = 0;
|
|
|
+ filePath = fileDir + "/酒店费用录入相关文件/" + dto.fileName;
|
|
|
+
|
|
|
+ System.IO.File.Delete(filePath);
|
|
|
+ id = await _sqlSugar.Updateable<Grp_HotelReservations>().Where(a => a.Id == dto.Id).SetColumns(a => new Grp_HotelReservations { Attachment = "" }).ExecuteCommandAsync();
|
|
|
+
|
|
|
+ if (id != 0)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(true, "成功!"));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "失败!"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "程序错误!"));
|
|
|
+ throw;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> HotelGenerate(HotelReservationsByIdDto dto)
|
|
|
+ {
|
|
|
+
|
|
|
+ Grp_HotelReservations h = _sqlSugar.Queryable<Grp_HotelReservations>().First(a => a.Id == dto.Id && a.IsDel == 0);
|
|
|
+
|
|
|
+
|
|
|
+ if (h != null)
|
|
|
+ {
|
|
|
+ if (!string.IsNullOrEmpty(h.DetermineNo))
|
|
|
+ {
|
|
|
+ string strFileName = "HotelStatement/";
|
|
|
+ Grp_DelegationInfo dele= _sqlSugar.Queryable<Grp_DelegationInfo>().First(a => a.Id == h.DiId && a.IsDel == 0);
|
|
|
+ if (dele != null)
|
|
|
+ strFileName += dele.TourCode;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ string sss = AppSettingsHelper.Get("WordBasePath") + "Template/酒店预订模板.doc";
|
|
|
+
|
|
|
+ Document doc = new Document(sss);
|
|
|
+ DocumentBuilder builder = new DocumentBuilder(doc);
|
|
|
+ try
|
|
|
+ {
|
|
|
+ #region 替换Word模板书签内容
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["VNO"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["VNO"];
|
|
|
+ mark.Text = h.CheckNumber;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["Date"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["Date"];
|
|
|
+ mark.Text = Convert.ToDateTime(h.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 = h.ReservationsNo;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["HotelConfirmNo"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["HotelConfirmNo"];
|
|
|
+ mark.Text = h.DetermineNo;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["City"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["City"];
|
|
|
+ mark.Text = h.City;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["HName"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["HName"];
|
|
|
+ mark.Text = h.HotelName;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["Address"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["Address"];
|
|
|
+ mark.Text = h.HotelAddress;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["Tel"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["Tel"];
|
|
|
+ mark.Text = h.HotelTel;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["Fax"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["Fax"];
|
|
|
+ if (!string.IsNullOrWhiteSpace(h.HotelFax))
|
|
|
+ {
|
|
|
+ mark.Text = h.HotelFax;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["CIn"] != null)
|
|
|
+ {
|
|
|
+ DateTime dtCheckIn = Convert.ToDateTime(h.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(h.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 = h.GuestName;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["ROOM"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["ROOM"];
|
|
|
+ mark.Text = h.RoomExplanation;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["NOTE"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["NOTE"];
|
|
|
+ Sys_SetData ss = _sqlSugar.Queryable<Sys_SetData>().First(a=>a.Id==h.ReservationsWebsite);
|
|
|
+ if (ss != null)
|
|
|
+ mark.Text = ss.Name;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["CheckIn"] != null)
|
|
|
+ {
|
|
|
+ DateTime dtCheckIn = Convert.ToDateTime(h.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(h.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(h.CreateTime).ToString("yyyy-MM-dd");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["VName"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["VName"];
|
|
|
+ mark.Text = h.HotelName;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (doc.Range.Bookmarks["VOUCHERNO"] != null)
|
|
|
+ {
|
|
|
+ Bookmark mark = doc.Range.Bookmarks["VOUCHERNO"];
|
|
|
+ mark.Text = h.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));
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+
|
|
|
+ throw;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "酒店确定号码未填写,无法生成Voucher!"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "酒店确定号码未填写,无法生成Voucher!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
#endregion
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> ConfirmWord(HotelReservationsByIdDto dto)
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+ Grp_DelegationInfo di = _sqlSugar.Queryable<Grp_DelegationInfo>().First(a => a.Id == dto.Id);
|
|
|
+
|
|
|
+
|
|
|
+ List<Grp_HotelReservations> listhoteldata = _sqlSugar.Queryable<Grp_HotelReservations>().Where(a => a.DiId == dto.Id && a.IsDel==0).ToList();
|
|
|
+
|
|
|
+
|
|
|
+ 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];
|
|
|
+ try
|
|
|
+ {
|
|
|
+
|
|
|
+ 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());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch
|
|
|
+ {
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ while (tableOne.Rows.Count > dt.Rows.Count + 1)
|
|
|
+ {
|
|
|
+ tableOne.Rows.RemoveAt(dt.Rows.Count + 1);
|
|
|
+ }
|
|
|
+ string strFileName = di.TeamName + "酒店确认单.doc";
|
|
|
+ try
|
|
|
+ {
|
|
|
+ doc.Save(AppSettingsHelper.Get("WordBasePath") + "HotelStatement/" + strFileName);
|
|
|
+ string Url = AppSettingsHelper.Get("WordBaseUrl") + "Office/Word/HotelStatement/" + strFileName;
|
|
|
+ return Ok(JsonView(true, "成功", Url));
|
|
|
+ }
|
|
|
+ catch (Exception)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "当前文档已打开,请先关闭!"));
|
|
|
+ throw;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|
|
|
}
|