Commit cf009c3f authored by liudong1993's avatar liudong1993

1

parent 849f0c76
...@@ -581,11 +581,11 @@ namespace OneTwoThreeZeroOne.EContracts { ...@@ -581,11 +581,11 @@ namespace OneTwoThreeZeroOne.EContracts {
/// <summary>成人费用(元)/每人</summary> /// <summary>成人费用(元)/每人</summary>
[JsonPropertyName("adultCost")] public decimal AdultCost { get; set; } [JsonPropertyName("adultCost")] public decimal AdultCost { get; set; }
/// <summary>儿童费用(元)/每人</summary> /// <summary>儿童费用(元)/每人</summary>
[JsonPropertyName("childCost")] public decimal ChildCost { get; set; } [JsonPropertyName("childCost")] public decimal? ChildCost { get; set; }
/// <summary>导游服务费(元)/每人</summary> /// <summary>导游服务费(元)/每人</summary>
[JsonPropertyName("guideServiceCost")] public decimal GuideServiceCost { get; set; } [JsonPropertyName("guideServiceCost")] public decimal? GuideServiceCost { get; set; }
/// <summary>单间差费用</summary> /// <summary>单间差费用</summary>
[JsonPropertyName("singleSupplementCost")] public decimal SingleSupplementCost { get; set; } //[JsonPropertyName("singleSupplementCost")] public decimal? SingleSupplementCost { get; set; }
/// <summary>总费用(元)</summary> /// <summary>总费用(元)</summary>
[JsonPropertyName("totalCost")] public decimal TotalCost { get; set; } [JsonPropertyName("totalCost")] public decimal TotalCost { get; set; }
/// <summary>餐饮费用</summary> /// <summary>餐饮费用</summary>
......
...@@ -316,8 +316,29 @@ namespace REBORN.Module.DMCModule ...@@ -316,8 +316,29 @@ namespace REBORN.Module.DMCModule
{nameof(RB_Contract_Extend.DepositDate),model.DepositDate }, {nameof(RB_Contract_Extend.DepositDate),model.DepositDate },
{nameof(RB_Contract_Extend.FinalPrice),model.FinalPrice }, {nameof(RB_Contract_Extend.FinalPrice),model.FinalPrice },
{nameof(RB_Contract_Extend.PriceDescription),model.PriceDescription }, {nameof(RB_Contract_Extend.PriceDescription),model.PriceDescription },
{nameof(RB_Contract_Extend.UpdateTime),DateTime.Now },
}; };
flag = contractRepository.Update(fileds, new WhereHelper(nameof(RB_Contract_Extend.Id), model.Id)); flag = contractRepository.Update(fileds, new WhereHelper(nameof(RB_Contract_Extend.Id), model.Id));
if (flag) {
if (model.IsApplyContract == 1)
{
TourismContractService service = GetContractService(model.RB_Group_Id ?? 0, model.RB_Branch_Id ?? 0, out string cmsg);
if (cmsg != "") { return flag; }
Console.WriteLine("1");
//审核通过, 同步上传合同至 公众号
Model.Entity.Dmc.RB_Contract htModel = contractRepository.GetEntity(model.Id);
if (string.IsNullOrEmpty(htModel.UnionGuestIds)) { return flag; }
//注意默认值 正式需要删除
//注意默认值 正式需要删除
htModel.Client_Name = "刘东";
htModel.Client_IDCardNum = "510112199301013617";
htModel.Client_Call = "18328620563";
CreateContractToLYJ(service, htModel);
}
}
} }
else else
{ {
...@@ -326,11 +347,13 @@ namespace REBORN.Module.DMCModule ...@@ -326,11 +347,13 @@ namespace REBORN.Module.DMCModule
var newId = contractRepository.Insert(model); var newId = contractRepository.Insert(model);
model.Id = newId; model.Id = newId;
flag = newId > 0; flag = newId > 0;
if (newId > 0 && model.IsApplyContract==1) { if (newId > 0 && model.IsApplyContract==1)
{
TourismContractService service = GetContractService(model.RB_Group_Id ?? 0, model.RB_Branch_Id ?? 0, out string cmsg); TourismContractService service = GetContractService(model.RB_Group_Id ?? 0, model.RB_Branch_Id ?? 0, out string cmsg);
if (cmsg != "") { return flag; } if (cmsg != "") { return flag; }
Console.WriteLine("1"); Console.WriteLine("1");
//审核通过, 同步上传合同至 公众号 //审核通过, 同步上传合同至 公众号
Model.Entity.Dmc.RB_Contract htModel = contractRepository.GetEntity(newId); Model.Entity.Dmc.RB_Contract htModel = contractRepository.GetEntity(newId);
if (string.IsNullOrEmpty(htModel.UnionGuestIds)) { return false; } if (string.IsNullOrEmpty(htModel.UnionGuestIds)) { return false; }
...@@ -340,218 +363,231 @@ namespace REBORN.Module.DMCModule ...@@ -340,218 +363,231 @@ namespace REBORN.Module.DMCModule
htModel.Client_Name = "刘东"; htModel.Client_Name = "刘东";
htModel.Client_IDCardNum = "510112199301013617"; htModel.Client_IDCardNum = "510112199301013617";
htModel.Client_Call = "18328620563"; htModel.Client_Call = "18328620563";
CreateContractToLYJ(service, htModel);
}
}
return flag;
}
Console.WriteLine("3"); /// <summary>
#region 开始组装数据 /// 创建合同
/// </summary>
//查询旅客名单 /// <param name="service"></param>
var guestList = travel_GuestRepository.GetTravelGuestList(new RB_Travel_Guest_Extend() { GuestIdStr = htModel.UnionGuestIds }); /// <param name="htModel"></param>
List<object> GuestInfo = new List<object>(); private void CreateContractToLYJ(TourismContractService service, Model.Entity.Dmc.RB_Contract htModel)
List<Tourist> Tourist = new List<Tourist>(); {
TouristId QZModel = new TouristId() Console.WriteLine("3");
{ #region 开始组装数据
IDType = (int)IDType.IDCard,
IDNumber = htModel.Client_IDCardNum //查询旅客名单
}; var guestList = travel_GuestRepository.GetTravelGuestList(new RB_Travel_Guest_Extend() { GuestIdStr = htModel.UnionGuestIds });
int Number = 1; List<object> GuestInfo = new List<object>();
foreach (var item in guestList) List<Tourist> Tourist = new List<Tourist>();
{ TouristId QZModel = new TouristId()
var TouristId = new TouristId { IDType = (int)IDType.IDCard, IDNumber = item.IdCard }; {
if (string.IsNullOrEmpty(item.IdCard)) { TouristId = new TouristId { IDType = (int)IDType.Passport, IDNumber = item.PassportNo }; } IDType = (int)IDType.IDCard,
bool IsChild = false; IDNumber = htModel.Client_IDCardNum
if (item.Birthday.HasValue && htModel.StartDate.HasValue) { };
int Number = 1;
// 计算基础年龄(年份差) foreach (var item in guestList)
int age = htModel.StartDate.Value.Year - item.Birthday.Value.Year; {
// 如果今年生日还没过,年龄减1 var TouristId = new TouristId { IDType = (int)IDType.IDCard, IDNumber = item.IdCard };
if (item.Birthday.Value.Date > htModel.StartDate.Value.AddYears(-age)) { age--; } if (string.IsNullOrEmpty(item.IdCard)) { TouristId = new TouristId { IDType = (int)IDType.Passport, IDNumber = item.PassportNo }; }
bool IsChild = false;
if (item.Birthday.HasValue && htModel.StartDate.HasValue)
{
if (age < 12) { IsChild = true; } // 计算基础年龄(年份差)
} int age = htModel.StartDate.Value.Year - item.Birthday.Value.Year;
Tourist.Add(new Tourist // 如果今年生日还没过,年龄减1
{ if (item.Birthday.Value.Date > htModel.StartDate.Value.AddYears(-age)) { age--; }
Number = Number++,
Name = item.SurName + item.Name,
//Gender = item.Sex == 1 ? "男" : item.Sex == 2 ? "女" : "",
Phone = item.MobilePhone,
ID = TouristId,
IsSigner = false,
Health = "健康",
IsChild = IsChild
});
if (!string.IsNullOrEmpty(htModel.Client_Name) && htModel.Client_Name == (item.SurName + item.Name)) if (age < 12) { IsChild = true; }
{ }
QZModel = JsonHelper.DeserializeObject<TouristId>(JsonHelper.Serialize(TouristId));//用名单上的 Tourist.Add(new Tourist
} {
} Number = Number++,
Name = item.SurName + item.Name,
//Gender = item.Sex == 1 ? "男" : item.Sex == 2 ? "女" : "",
Phone = item.MobilePhone,
ID = TouristId,
IsSigner = false,
Health = "健康",
IsChild = IsChild
});
if (!string.IsNullOrEmpty(htModel.Client_Name) && htModel.Client_Name == (item.SurName + item.Name))
{
QZModel = JsonHelper.DeserializeObject<TouristId>(JsonHelper.Serialize(TouristId));//用名单上的
}
}
var Shoppings = new List<Shopping>(); var Shoppings = new List<Shopping>();
if (!string.IsNullOrEmpty(htModel.ShopProtocol)) if (!string.IsNullOrEmpty(htModel.ShopProtocol))
{
var shopProtocolList = !string.IsNullOrWhiteSpace(htModel?.ShopProtocol ?? "") ? JsonConvert.DeserializeObject<List<object>>(htModel?.ShopProtocol ?? "") : new List<object>();
foreach (var item in shopProtocolList)
{
JObject parms = JObject.Parse(item.ToString());
Shoppings.Add(new Shopping()
{ {
var shopProtocolList = !string.IsNullOrWhiteSpace(htModel?.ShopProtocol ?? "") ? JsonConvert.DeserializeObject<List<object>>(htModel?.ShopProtocol ?? "") : new List<object>(); Date = parms.GetStringValue("specificTime"),
foreach (var item in shopProtocolList) Place = parms.GetStringValue("Address"),
{ StayDuration = parms.GetStringValue("stayTime"),
JObject parms = JObject.Parse(item.ToString()); ShoppingPlace = parms.GetStringValue("shoppName"),
Shoppings.Add(new Shopping() Goods = parms.GetStringValue("CommodityInformation"),
{ Memo = parms.GetStringValue("other")
Date = parms.GetStringValue("specificTime"), });
Place = parms.GetStringValue("Address"), }
StayDuration = parms.GetStringValue("stayTime"), }
ShoppingPlace = parms.GetStringValue("shoppName"),
Goods = parms.GetStringValue("CommodityInformation"),
Memo = parms.GetStringValue("other")
});
}
}
var Activities = new List<Activity>(); var Activities = new List<Activity>();
if (!string.IsNullOrEmpty(htModel.PayProtocol)) if (!string.IsNullOrEmpty(htModel.PayProtocol))
{
var payProtocolList = !string.IsNullOrWhiteSpace(htModel?.PayProtocol ?? "") ? JsonConvert.DeserializeObject<List<object>>(htModel?.PayProtocol ?? "") : new List<object>();
foreach (var item in payProtocolList)
{
JObject parms = JObject.Parse(item.ToString());
Activities.Add(new Activity()
{ {
var payProtocolList = !string.IsNullOrWhiteSpace(htModel?.PayProtocol ?? "") ? JsonConvert.DeserializeObject<List<object>>(htModel?.PayProtocol ?? "") : new List<object>(); Date = parms.GetStringValue("specificTime"),
foreach (var item in payProtocolList) Place = parms.GetStringValue("Address"),
{ Item = parms.GetStringValue("programName"),
JObject parms = JObject.Parse(item.ToString()); Fee = parms.GetDecimal("money"),
Activities.Add(new Activity() StayDuration = parms.GetStringValue("programTime"),
{ Memo = parms.GetStringValue("other")
Date = parms.GetStringValue("specificTime"), });
Place = parms.GetStringValue("Address"), }
Item = parms.GetStringValue("programName"), }
Fee = parms.GetDecimal("money"),
StayDuration = parms.GetStringValue("programTime"),
Memo = parms.GetStringValue("other")
});
}
}
Console.WriteLine("4"); Console.WriteLine("4");
var req = new ApplyContractRequest var req = new ApplyContractRequest
{
ERPContractId = htModel.ContractNum,
AuthType = QZModel.IDType == 1 ? "1" : "0",
TemplateId = "C00001",
CallbackURL = "http://htapi.oytour.com/api/PayNotify/ContractNotify",
IsMultiSignatory = false,
SupplementaryClause = ReplaceParagraphTagsWithNewlines(htModel.Other_Matter),//其他约定事项
//公司信息
TravelAgency = new TravelAgencyInfo
{
TransactorName = htModel.Agent_Name,
TransactorPhone = !string.IsNullOrEmpty(htModel.Company_Call) ? htModel.Company_Call : htModel.Regulator_Complain_Call,
LocalComplaintPhone = htModel.Company_Complain_Call,
ComplaintPhone = htModel.Regulator_Complain_Call,
AgencyName = htModel.Company,
TravelAgencyLicenseNumber = htModel.Business_Certificate,
BusinessLicenseNumber = htModel.Business_Certificate,
AgencyAddress = new Address()
{ {
ERPContractId = htModel.ContractNum, Description = htModel.Company_Address,
AuthType = QZModel.IDType == 1 ? "1" : "0", Zip = htModel.Company_Post_Code
TemplateId = "C00001", },
CallbackURL = "http://htapi.oytour.com/api/PayNotify/ContractNotify", ContactName = "",
IsMultiSignatory = false, ContactPhone = "",
SupplementaryClause = ReplaceParagraphTagsWithNewlines(htModel.Other_Matter),//其他约定事项 Email = "",
//公司信息 Fax = "",
TravelAgency = new TravelAgencyInfo ServicePhone = ""
{ },
TransactorName = htModel.Agent_Name, //行程
TransactorPhone = !string.IsNullOrEmpty(htModel.Company_Call) ? htModel.Company_Call : htModel.Regulator_Complain_Call, Itinerary = new Itinerary()
LocalComplaintPhone = htModel.Company_Complain_Call, {
ComplaintPhone = htModel.Regulator_Complain_Call, InputType = 1,
AgencyName = htModel.Company, StartDate = htModel.StartDate.HasValue ? htModel.StartDate.Value.ToString("yyyy-MM-dd") : "",
TravelAgencyLicenseNumber = htModel.Business_Certificate, EndDate = htModel.ReturnDate.HasValue ? htModel.ReturnDate.Value.ToString("yyyy-MM-dd") : "",
BusinessLicenseNumber = htModel.Business_Certificate, Days = htModel.DayNum ?? 0,
AgencyAddress = new Address() Nights = htModel.NightNum ?? 0,
{ GroupId = htModel.TCNum,
Description = htModel.Company_Address, RouteName = htModel.ProductName,
Zip = htModel.Company_Post_Code Routes = new RouteStop[] {
},
ContactName = "",
ContactPhone = "",
Email = "",
Fax = "",
ServicePhone = ""
},
//行程
Itinerary = new Itinerary()
{
InputType = 1,
StartDate = htModel.StartDate.HasValue ? htModel.StartDate.Value.ToString("yyyy-MM-dd") : "",
EndDate = htModel.ReturnDate.HasValue ? htModel.ReturnDate.Value.ToString("yyyy-MM-dd") : "",
Days = htModel.DayNum ?? 0,
Nights = htModel.NightNum ?? 0,
GroupId = htModel.TCNum,
RouteName = htModel.ProductName,
Routes = new RouteStop[] {
new RouteStop(){ new RouteStop(){
Day=1, Day=1,
Description=AddTableBorder(htModel.Travel_Content) Description=AddTableBorder(htModel.Travel_Content)
} }
} }
}, },
//客人名单 //客人名单
TouristsInfo = new TouristsInfo TouristsInfo = new TouristsInfo
{ {
TotalNumber = htModel.GuestNum, TotalNumber = htModel.GuestNum,
Tourists = Tourist.ToArray() Tourists = Tourist.ToArray()
}, },
//旅客代表 //旅客代表
Signatory = new Signatory Signatory = new Signatory
{ {
Name = htModel.Client_Name, Name = htModel.Client_Name,
ID = QZModel, ID = QZModel,
Phone = htModel.Client_Call.Replace(" ", ""), Phone = htModel.Client_Call.Replace(" ", ""),
Mode = (int)SignMode.Sms, Mode = (int)SignMode.Sms,
Address = new Address() Address = new Address()
{ {
Description = htModel.Client_Address, Description = htModel.Client_Address,
Zip = htModel.Client_Post_Code Zip = htModel.Client_Post_Code
}, },
CompanyName = "", CompanyName = "",
Email = htModel.Client_Email, Email = htModel.Client_Email,
Fax = htModel.Client_Fax, Fax = htModel.Client_Fax,
SigningPlace = htModel.Contract_Place, SigningPlace = htModel.Contract_Place,
OfficePhone = "" OfficePhone = ""
}, },
//费用 //费用
Cost = new CostInfo() Cost = new CostInfo()
{ {
AdultCost = htModel.Adult_Price ?? 0, AdultCost = htModel.Adult_Price ?? 0,
ChildCost = htModel.Child_Price ?? 0, ChildCost = htModel.Child_Price ==0?null : htModel.Child_Price,
GuideServiceCost = htModel.Service_Price ?? 0, GuideServiceCost = htModel.Service_Price ==0?null : htModel.Service_Price,
TotalCost = htModel.Order_Price ?? 0, TotalCost = htModel.Order_Price ?? 0,
PaymentTime = htModel.Pay_Date, PaymentTime = htModel.Pay_Date,
PaymentMethod = htModel.PayType ?? 1, PaymentMethod = htModel.PayType ?? 1,
//ExcludeNote = "团费不包含:", //ExcludeNote = "团费不包含:",
PaymentDescription = htModel.PriceDescription PaymentDescription = htModel.PriceDescription
}, },
Insurance = new InsuranceInfo() Insurance = new InsuranceInfo()
{ {
PurchaseMethod = htModel.Insurance_Opinion ?? 1, PurchaseMethod = htModel.Insurance_Opinion ?? 1,
ProductName = !string.IsNullOrEmpty(htModel.Insurance_Product) ? htModel.Insurance_Product : htModel.Insurance_Company ProductName = !string.IsNullOrEmpty(htModel.Insurance_Product) ? htModel.Insurance_Product : htModel.Insurance_Company
}, },
Dispute = new DisputeInfo() Dispute = new DisputeInfo()
{ {
Resolution = htModel.Settle_Dispute_Mode ?? 1, Resolution = htModel.Settle_Dispute_Mode ?? 1,
TribunalName = htModel.Arbitration_Commission, TribunalName = htModel.Arbitration_Commission,
CourtName = htModel.Court CourtName = htModel.Court
}, },
//自费项目 //自费项目
Activities = Activities.ToArray(), Activities = Activities.ToArray(),
//购物 //购物
Shoppings = Shoppings.ToArray(), Shoppings = Shoppings.ToArray(),
GroupAgreement = new GroupAgreement() GroupAgreement = new GroupAgreement()
{ {
Resolution = htModel.Instead_Opinion == 1 ? (int)GroupAgreementResolution.EntrustOtherAgency : Resolution = htModel.Instead_Opinion == 1 ? (int)GroupAgreementResolution.EntrustOtherAgency :
htModel.Delay_Opinion == "1" ? (int)GroupAgreementResolution.Delay : htModel.Delay_Opinion == "1" ? (int)GroupAgreementResolution.Delay :
htModel.Change_Opinion == "1" ? (int)GroupAgreementResolution.ChangeRoute : htModel.Change_Opinion == "1" ? (int)GroupAgreementResolution.ChangeRoute :
htModel.Terminate_Opinion == "1" ? (int)GroupAgreementResolution.Terminate : (int)GroupAgreementResolution.Other, htModel.Terminate_Opinion == "1" ? (int)GroupAgreementResolution.Terminate : (int)GroupAgreementResolution.Other,
LeastCustomerNumber = htModel.Min_Number ?? 0, LeastCustomerNumber = htModel.Min_Number ?? 0,
AgreeToDelay = htModel.Delay_Opinion == "1" ? true : false, AgreeToDelay = htModel.Delay_Opinion == "1" ? true : false,
AgreeToChangeLine = htModel.Change_Opinion == "1" ? true : false, AgreeToChangeLine = htModel.Change_Opinion == "1" ? true : false,
AgreeToTerminate = htModel.Terminate_Opinion == "1" ? true : false, AgreeToTerminate = htModel.Terminate_Opinion == "1" ? true : false,
AgreeToMerge = htModel.Carpool_Opinion == "1" ? true : false, AgreeToMerge = htModel.Carpool_Opinion == "1" ? true : false,
MergeToCompanyName = htModel.Carpool_Company MergeToCompanyName = htModel.Carpool_Company
} }
}; };
var payload = service.GetJson(req); var payload = service.GetJson(req);
LogHelper.Write(payload); LogHelper.Write(payload);
var response = service.ApplyContract(payload); var response = service.ApplyContract(payload, htModel.ThirdContractID);
LogHelper.Write(JsonHelper.Serialize(response)); LogHelper.Write(JsonHelper.Serialize(response));
Console.WriteLine("5"); Console.WriteLine("5");
#endregion #endregion
#region 更新合同 #region 更新合同
if (response.Error == null) if (response.Error == null)
{ {
Dictionary<string, object> keyValues = new Dictionary<string, object>() { Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Contract_Extend.ContractNum), response.Data.ContractNumber}, { nameof(RB_Contract_Extend.ContractNum), response.Data.ContractNumber},
{ nameof(RB_Contract_Extend.ThirdContractID), response.Data.ContractNumber}, { nameof(RB_Contract_Extend.ThirdContractID), response.Data.ContractNumber},
{ nameof(RB_Contract_Extend.ThirdContractSignUrl), response.Data.SigningURL}, { nameof(RB_Contract_Extend.ThirdContractSignUrl), response.Data.SigningURL},
...@@ -559,35 +595,32 @@ namespace REBORN.Module.DMCModule ...@@ -559,35 +595,32 @@ namespace REBORN.Module.DMCModule
{ nameof(RB_Contract_Extend.ThirdContractFileUrl), response.Data.FileURL}, { nameof(RB_Contract_Extend.ThirdContractFileUrl), response.Data.FileURL},
{ nameof(RB_Contract_Extend.ThirdContractState), 1}, { nameof(RB_Contract_Extend.ThirdContractState), 1},
}; };
List<WhereHelper> wheres = new List<WhereHelper>() { List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){ new WhereHelper(){
FiledName = nameof(RB_Contract_Extend.Id), FiledName = nameof(RB_Contract_Extend.Id),
FiledValue = htModel.Id, FiledValue = htModel.Id,
OperatorEnum = OperatorEnum.Equal OperatorEnum = OperatorEnum.Equal
} }
}; };
contractRepository.Update(keyValues, wheres); contractRepository.Update(keyValues, wheres);
//查看是否要 作废合同 //查看是否要 作废合同
if (!string.IsNullOrEmpty(htModel.ThirdContractID) && htModel.ThirdContractID != response.Data.ContractNumber) if (!string.IsNullOrEmpty(htModel.ThirdContractID) && htModel.ThirdContractID != response.Data.ContractNumber)
{ {
//获取一下合同状态 //获取一下合同状态
service.GetContractStatus(htModel.ThirdContractID); service.GetContractStatus(htModel.ThirdContractID);
if (htModel.ThirdContractState == 1 || htModel.ThirdContractState == 2) if (htModel.ThirdContractState == 1 || htModel.ThirdContractState == 2)
{ {
//合同编号不一样了 作废之前的合同 //合同编号不一样了 作废之前的合同
var result = service.InvalidateContract(htModel.ThirdContractID); var result = service.InvalidateContract(htModel.ThirdContractID);
LogHelper.WriteInfo(JsonHelper.Serialize(result)); LogHelper.WriteInfo(JsonHelper.Serialize(result));
//获取一下合同状态 //获取一下合同状态
service.GetContractStatus(htModel.ThirdContractID); service.GetContractStatus(htModel.ThirdContractID);
}
}
} }
#endregion
} }
} }
return flag; #endregion
} }
/// <summary> /// <summary>
...@@ -981,6 +1014,27 @@ namespace REBORN.Module.DMCModule ...@@ -981,6 +1014,27 @@ namespace REBORN.Module.DMCModule
{nameof(RB_Travel_Contract_Extend.Tourists_IDType),extModel.Tourists_IDType }, {nameof(RB_Travel_Contract_Extend.Tourists_IDType),extModel.Tourists_IDType },
}; };
flag = travel_ContractRepository.Update(fileds, new WhereHelper(nameof(RB_Travel_Contract_Extend.ID), extModel.ID)); flag = travel_ContractRepository.Update(fileds, new WhereHelper(nameof(RB_Travel_Contract_Extend.ID), extModel.ID));
if (flag) {
if (Id > 0 && extModel.IsApplyContract == 1)
{
var htModel = extModel;
if (htModel.CType == 1 || htModel.CType == 2 || htModel.CType == 3)
{
//开始同步合同至旅游局
//审核通过, 同步上传合同至 公众号
if (string.IsNullOrEmpty(htModel.GuestJson)) { return flag; }
//注意默认值 正式需要删除
htModel.Tourists_Tel = "18328620563";
#region 初始化旅游局Key
TourismContractService service = GetContractService(htModel.RB_Group_Id ?? 0, htModel.RB_Branch_Id ?? 0, out string cmsg);
if (cmsg != "") { LogHelper.Write("初始化旅游局Key失败:" + cmsg); return false; }
#endregion
CreateSingleContractToLYJ(htModel, service);
}
}
}
} }
else else
{ {
...@@ -997,304 +1051,318 @@ namespace REBORN.Module.DMCModule ...@@ -997,304 +1051,318 @@ namespace REBORN.Module.DMCModule
//审核通过, 同步上传合同至 公众号 //审核通过, 同步上传合同至 公众号
if (string.IsNullOrEmpty(htModel.GuestJson)) { return false; } if (string.IsNullOrEmpty(htModel.GuestJson)) { return false; }
//注意默认值 正式需要删除 //注意默认值 正式需要删除
htModel.Tourists_Tel = "18328620563"; htModel.Tourists_Tel = "18328620563";
#region 初始化旅游局Key #region 初始化旅游局Key
TourismContractService service = GetContractService(htModel.RB_Group_Id ?? 0, htModel.RB_Branch_Id ?? 0, out string cmsg); TourismContractService service = GetContractService(htModel.RB_Group_Id ?? 0, htModel.RB_Branch_Id ?? 0, out string cmsg);
if (cmsg != "") { LogHelper.Write("初始化旅游局Key失败:" + cmsg); return false; } if (cmsg != "") { LogHelper.Write("初始化旅游局Key失败:" + cmsg); return false; }
#endregion #endregion
CreateSingleContractToLYJ(htModel, service);
}
}
}
return flag;
}
//这一套合同 没有客人列表,走 合同里抓取 /// <summary>
//查询旅客名单 /// 上传旅游局
htModel.ContractGuestList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractGuest>>(htModel.GuestJson); /// </summary>
List<object> GuestInfo = new List<object>(); /// <param name="htModel"></param>
List<Tourist> Tourist = new List<Tourist>(); /// <param name="service"></param>
TouristId QZModel = new TouristId() private void CreateSingleContractToLYJ(RB_Travel_Contract_Extend htModel, TourismContractService service)
{ {
IDType = (int)IDType.IDCard,
IDNumber = htModel.Tourists_IDNum
};
if ((QZModel.IDNumber ?? "").Length <= 10) { QZModel.IDType = (int)IDType.Passport; }
int Number = 1;
foreach (var item in htModel.ContractGuestList)
{
var TouristId = new TouristId { IDType = (int)IDType.IDCard, IDNumber = item.CGuestCertificateNum };
if (item.CGuestCertificateType == "护照") { TouristId = new TouristId { IDType = (int)IDType.Passport, IDNumber = item.CGuestCertificateNum }; }
Tourist.Add(new Tourist //这一套合同 没有客人列表,走 合同里抓取
{ //查询旅客名单
Number = Number++, htModel.ContractGuestList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractGuest>>(htModel.GuestJson);
Name = item.CGuestName, List<object> GuestInfo = new List<object>();
Gender = item.CGuestSex, List<Tourist> Tourist = new List<Tourist>();
Phone = item.CGuestTel, TouristId QZModel = new TouristId()
Race = "", {
Health = item.CGuestHealth, IDType = (int)IDType.IDCard,
ID = TouristId IDNumber = htModel.Tourists_IDNum
}); };
if ((QZModel.IDNumber ?? "").Length <= 10) { QZModel.IDType = (int)IDType.Passport; }
if (!string.IsNullOrEmpty(htModel.Tourists_Name) && htModel.Tourists_Name == item.CGuestName) int Number = 1;
{ foreach (var item in htModel.ContractGuestList)
QZModel = JsonHelper.DeserializeObject<TouristId>(JsonHelper.Serialize(TouristId));//用名单上的 {
} var TouristId = new TouristId { IDType = (int)IDType.IDCard, IDNumber = item.CGuestCertificateNum };
} if (item.CGuestCertificateType == "护照") { TouristId = new TouristId { IDType = (int)IDType.Passport, IDNumber = item.CGuestCertificateNum }; }
#region 解析其他json Tourist.Add(new Tourist
{
Number = Number++,
Name = item.CGuestName,
Gender = item.CGuestSex,
Phone = item.CGuestTel,
Race = "",
Health = item.CGuestHealth,
ID = TouristId
});
if (!string.IsNullOrEmpty(htModel.Tourists_Name) && htModel.Tourists_Name == item.CGuestName)
{
QZModel = JsonHelper.DeserializeObject<TouristId>(JsonHelper.Serialize(TouristId));//用名单上的
}
}
htModel.ContractTripList = new List<ContractTrip>(); #region 解析其他json
if (htModel.TripJson != null && !string.IsNullOrEmpty(htModel.TripJson.Trim()))
{
try
{
JArray jArray = JArray.Parse(htModel.TripJson);
if (jArray != null && jArray.Count > 0)
{
foreach (var jItem in jArray)
{
JObject jobj = JObject.Parse(jItem.ToString());
ContractTrip cModel = new ContractTrip()
{
TripType = jobj.GetInt("TripType"),
DayNum = jobj.GetInt("DayNum"),
Go = jobj.GetStringValue("Go"),
GoProvice = jobj.GetStringValue("GoProvice"),
IsOut = jobj.GetInt("IsOut"),
TravelContent = jobj.GetStringValue("TravelContent"),
};
htModel.ContractTripList.Add(cModel);
}
}
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "GetTravelContractModule_TripJson");
}
}
htModel.ContractShopList = new List<ContractShop>();
if (htModel.ShopJson != null && !string.IsNullOrEmpty(htModel.ShopJson.Trim()))
{
htModel.ContractShopList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractShop>>(htModel.ShopJson);
}
htModel.ContractSelfFeeList = new List<ContractSelfFee>();
if (htModel.SelfFeeJson != null && !string.IsNullOrEmpty(htModel.SelfFeeJson.Trim()))
{
htModel.ContractSelfFeeList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractSelfFee>>(htModel.SelfFeeJson);
}
htModel.ContractTicketList = new List<ContractTicket>();
if (htModel.TicketJson != null && !string.IsNullOrEmpty(htModel.TicketJson.Trim()))
{
htModel.ContractTicketList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractTicket>>(htModel.TicketJson);
}
htModel.ContractHotelList = new List<ContractHotel>();
if (htModel.HotelBookJson != null && !string.IsNullOrEmpty(htModel.HotelBookJson.Trim()))
{
htModel.ContractHotelList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractHotel>>(htModel.HotelBookJson);
}
htModel.ContractPickUpList = new List<ContractPickUp>();
if (htModel.PickUpJson != null && !string.IsNullOrEmpty(htModel.PickUpJson.Trim()))
{
htModel.ContractPickUpList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractPickUp>>(htModel.PickUpJson);
}
htModel.ContractVisaList = new List<ContractVisa>();
if (htModel.VisaJson != null && !string.IsNullOrEmpty(htModel.VisaJson.Trim()))
{
htModel.ContractVisaList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractVisa>>(htModel.VisaJson);
}
htModel.ContractTicketAndHotel = new ContractTicketAndHotel();
if (htModel.TicketAndHotelJson != null && !string.IsNullOrEmpty(htModel.TicketAndHotelJson.Trim()))
{
htModel.ContractTicketAndHotel = Common.Plugin.JsonHelper.DeserializeObject<ContractTicketAndHotel>(htModel.TicketAndHotelJson);
}
var Shoppings = new List<Shopping>(); htModel.ContractTripList = new List<ContractTrip>();
foreach (var item in htModel.ContractShopList) if (htModel.TripJson != null && !string.IsNullOrEmpty(htModel.TripJson.Trim()))
{
try
{
JArray jArray = JArray.Parse(htModel.TripJson);
if (jArray != null && jArray.Count > 0)
{
foreach (var jItem in jArray)
{ {
Shoppings.Add(new Shopping() JObject jobj = JObject.Parse(jItem.ToString());
ContractTrip cModel = new ContractTrip()
{ {
Date = item.ShopTime, TripType = jobj.GetInt("TripType"),
Place = item.ShopAddress, DayNum = jobj.GetInt("DayNum"),
StayDuration = item.StopTime, Go = jobj.GetStringValue("Go"),
ShoppingPlace = item.ShopName, GoProvice = jobj.GetStringValue("GoProvice"),
Goods = item.ShopGoodName, IsOut = jobj.GetInt("IsOut"),
Memo = item.OtherInstruction TravelContent = jobj.GetStringValue("TravelContent"),
}); };
htModel.ContractTripList.Add(cModel);
} }
}
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "GetTravelContractModule_TripJson");
}
}
htModel.ContractShopList = new List<ContractShop>();
if (htModel.ShopJson != null && !string.IsNullOrEmpty(htModel.ShopJson.Trim()))
{
htModel.ContractShopList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractShop>>(htModel.ShopJson);
}
htModel.ContractSelfFeeList = new List<ContractSelfFee>();
if (htModel.SelfFeeJson != null && !string.IsNullOrEmpty(htModel.SelfFeeJson.Trim()))
{
htModel.ContractSelfFeeList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractSelfFee>>(htModel.SelfFeeJson);
}
htModel.ContractTicketList = new List<ContractTicket>();
if (htModel.TicketJson != null && !string.IsNullOrEmpty(htModel.TicketJson.Trim()))
{
htModel.ContractTicketList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractTicket>>(htModel.TicketJson);
}
htModel.ContractHotelList = new List<ContractHotel>();
if (htModel.HotelBookJson != null && !string.IsNullOrEmpty(htModel.HotelBookJson.Trim()))
{
htModel.ContractHotelList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractHotel>>(htModel.HotelBookJson);
}
htModel.ContractPickUpList = new List<ContractPickUp>();
if (htModel.PickUpJson != null && !string.IsNullOrEmpty(htModel.PickUpJson.Trim()))
{
htModel.ContractPickUpList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractPickUp>>(htModel.PickUpJson);
}
htModel.ContractVisaList = new List<ContractVisa>();
if (htModel.VisaJson != null && !string.IsNullOrEmpty(htModel.VisaJson.Trim()))
{
htModel.ContractVisaList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractVisa>>(htModel.VisaJson);
}
htModel.ContractTicketAndHotel = new ContractTicketAndHotel();
if (htModel.TicketAndHotelJson != null && !string.IsNullOrEmpty(htModel.TicketAndHotelJson.Trim()))
{
htModel.ContractTicketAndHotel = Common.Plugin.JsonHelper.DeserializeObject<ContractTicketAndHotel>(htModel.TicketAndHotelJson);
}
var Activities = new List<Activity>(); var Shoppings = new List<Shopping>();
foreach (var item in htModel.ContractSelfFeeList) foreach (var item in htModel.ContractShopList)
{ {
Activities.Add(new Activity() Shoppings.Add(new Shopping()
{ {
Date = item.SelfFeeTime, Date = item.ShopTime,
Place = item.SelfFeeAddress, Place = item.ShopAddress,
Item = item.SelfFeeName, StayDuration = item.StopTime,
Fee = Convert.ToDecimal(item.SelfFeePrice), ShoppingPlace = item.ShopName,
StayDuration = item.StopTime, Goods = item.ShopGoodName,
Memo = item.OtherInstruction Memo = item.OtherInstruction
}); });
} }
#endregion
var req = new ApplyContractRequest var Activities = new List<Activity>();
{ foreach (var item in htModel.ContractSelfFeeList)
ERPContractId = htModel.T_ContractNum, {
AuthType = QZModel.IDType == 1 ? "1" : "0", Activities.Add(new Activity()
TemplateId = "",//子方法新增 {
CallbackURL = "http://htapi.oytour.com/api/PayNotify/ContractNotify", Date = item.SelfFeeTime,
IsMultiSignatory = false, Place = item.SelfFeeAddress,
//SupplementaryClause = htModel.OtherConvention,//其他约定事项 Item = item.SelfFeeName,
SupplementaryClause = ReplaceParagraphTagsWithNewlines2(htModel.OtherConvention),//其他约定事项 Fee = Convert.ToDecimal(item.SelfFeePrice),
//公司信息 StayDuration = item.StopTime,
TravelAgency = new TravelAgencyInfo Memo = item.OtherInstruction
{ });
TransactorName = htModel.TravelAgency_DealMan, }
TransactorPhone = !string.IsNullOrEmpty(htModel.TravelAgency_Tel) ? htModel.TravelAgency_Tel : htModel.C_ComplaintTel, #endregion
//LocalComplaintPhone = htModel.C_ComplaintTel,
ComplaintPhone = htModel.TravelAgency_ServiceTel, var req = new ApplyContractRequest
ContactPhone = htModel.TravelAgency_ServiceTel, {
LocalComplaintPhone = htModel.C_ComplaintTel, ERPContractId = htModel.T_ContractNum,
ServicePhone = htModel.TravelAgency_ServiceTel, AuthType = QZModel.IDType == 1 ? "1" : "0",
AgencyName = htModel.TravelAgency_Name, TemplateId = "",//子方法新增
TravelAgencyLicenseNumber = htModel.TravelAgency_LicenseNum, CallbackURL = "http://htapi.oytour.com/api/PayNotify/ContractNotify",
BusinessLicenseNumber = htModel.TravelAgency_LicenseNum, IsMultiSignatory = false,
AgencyAddress = new Address() //SupplementaryClause = htModel.OtherConvention,//其他约定事项
{ SupplementaryClause = ReplaceParagraphTagsWithNewlines2(htModel.OtherConvention),//其他约定事项
Description = htModel.TravelAgency_Address, //公司信息
Zip = htModel.TravelAgency_PostNum TravelAgency = new TravelAgencyInfo
}, {
ContactName = "", TransactorName = htModel.TravelAgency_DealMan,
Email = "", TransactorPhone = !string.IsNullOrEmpty(htModel.TravelAgency_Tel) ? htModel.TravelAgency_Tel : htModel.C_ComplaintTel,
Fax = "", //LocalComplaintPhone = htModel.C_ComplaintTel,
}, ComplaintPhone = htModel.TravelAgency_ServiceTel,
//行程 ContactPhone = htModel.TravelAgency_ServiceTel,
Itinerary = new Itinerary() LocalComplaintPhone = htModel.C_ComplaintTel,
{ ServicePhone = htModel.TravelAgency_ServiceTel,
InputType = 1, AgencyName = htModel.TravelAgency_Name,
StartDate = htModel.C_StartDate.HasValue ? htModel.C_StartDate.Value.ToString("yyyy-MM-dd") : "", TravelAgencyLicenseNumber = htModel.TravelAgency_LicenseNum,
EndDate = htModel.C_EndDate.HasValue ? htModel.C_EndDate.Value.ToString("yyyy-MM-dd") : "", BusinessLicenseNumber = htModel.TravelAgency_LicenseNum,
Days = htModel.C_DayNum ?? 0, AgencyAddress = new Address()
Nights = htModel.C_NightNum ?? 0, {
GroupId = htModel.C_TCNUM, Description = htModel.TravelAgency_Address,
RouteName = htModel.C_ProductName, Zip = htModel.TravelAgency_PostNum
Routes = new RouteStop[] { },
ContactName = "",
Email = "",
Fax = "",
},
//行程
Itinerary = new Itinerary()
{
InputType = 1,
StartDate = htModel.C_StartDate.HasValue ? htModel.C_StartDate.Value.ToString("yyyy-MM-dd") : "",
EndDate = htModel.C_EndDate.HasValue ? htModel.C_EndDate.Value.ToString("yyyy-MM-dd") : "",
Days = htModel.C_DayNum ?? 0,
Nights = htModel.C_NightNum ?? 0,
GroupId = htModel.C_TCNUM,
RouteName = htModel.C_ProductName,
Routes = new RouteStop[] {
new RouteStop(){ new RouteStop(){
Day=1, Day=1,
Description=htModel.ContractTripList.Any()? AddTableBorder(htModel.ContractTripList.FirstOrDefault().TravelContent) :"" Description=htModel.ContractTripList.Any()? AddTableBorder(htModel.ContractTripList.FirstOrDefault().TravelContent) :""
} }
}, },
}, },
//客人名单 //客人名单
TouristsInfo = new TouristsInfo TouristsInfo = new TouristsInfo
{ {
TotalNumber = (htModel.C_AdultNum ?? 0) + (htModel.C_ChildrenNum ?? 0), TotalNumber = (htModel.C_AdultNum ?? 0) + (htModel.C_ChildrenNum ?? 0),
AdultNumber = htModel.C_AdultNum ?? 0, AdultNumber = htModel.C_AdultNum ?? 0,
ChildNumber = htModel.C_ChildrenNum ?? 0, ChildNumber = htModel.C_ChildrenNum ?? 0,
Tourists = Tourist.ToArray() Tourists = Tourist.ToArray()
}, },
//旅客代表 //旅客代表
Signatory = new Signatory Signatory = new Signatory
{ {
Name = htModel.Tourists_Name, Name = htModel.Tourists_Name,
ID = QZModel, ID = QZModel,
Phone = htModel.Tourists_Tel.Replace(" ", ""), Phone = htModel.Tourists_Tel.Replace(" ", ""),
Mode = (int)SignMode.Sms, Mode = (int)SignMode.Sms,
Address = new Address() Address = new Address()
{ {
Description = htModel.Tourists_Addres, Description = htModel.Tourists_Addres,
Zip = htModel.Tourists_PostNum Zip = htModel.Tourists_PostNum
}, },
CompanyName = "", CompanyName = "",
Email = htModel.Tourists_Email, Email = htModel.Tourists_Email,
Fax = htModel.Tourists_Fax, Fax = htModel.Tourists_Fax,
SigningPlace = htModel.TravelAgency_SignAddress, SigningPlace = htModel.TravelAgency_SignAddress,
OfficePhone = "" OfficePhone = ""
}, },
//导游 //导游
TourGuides = new TourGuide[] { TourGuides = new TourGuide[] {
new TourGuide(){ new TourGuide(){
Name = htModel.Guide_Name, Name = htModel.Guide_Name,
Phone = htModel.Guide_Tel, Phone = htModel.Guide_Tel,
TourGuideID = htModel.Guide_Num TourGuideID = htModel.Guide_Num
} }
}, },
//费用 //费用
Cost = new CostInfo() Cost = new CostInfo()
{ {
AdultCost = htModel.C_AdultPrice ?? 0, AdultCost = htModel.C_AdultPrice ?? 0,
ChildCost = htModel.C_ChildrenPrice ?? 0, ChildCost = htModel.C_ChildrenPrice ==0 ?null : htModel.C_ChildrenPrice,
GuideServiceCost = htModel.C_GuideServicePrice ?? 0, GuideServiceCost = htModel.C_GuideServicePrice ==0?null : htModel.C_GuideServicePrice,
TotalCost = htModel.C_TotalPrice ?? 0, TotalCost = htModel.C_TotalPrice ?? 0,
PaymentTime = htModel.C_PayDate.HasValue ? htModel.C_PayDate.Value.ToString("yyyy-MM-dd") : "", PaymentTime = htModel.C_PayDate.HasValue ? htModel.C_PayDate.Value.ToString("yyyy-MM-dd") : "",
PaymentMethod = (htModel.C_PayType == 1 ? 1 : htModel.C_PayType == 5 ? 2 : 3), PaymentMethod = (htModel.C_PayType == 1 ? 1 : htModel.C_PayType == 5 ? 2 : 3),
ExcludeNote = htModel.C_NonIncludeRemark, ExcludeNote = htModel.C_NonIncludeRemark,
PaymentDescription = "" PaymentDescription = ""
}, },
Insurance = new InsuranceInfo() Insurance = new InsuranceInfo()
{ {
PurchaseMethod = htModel.C_InsuranceType ?? 1, PurchaseMethod = htModel.C_InsuranceType ?? 1,
ProductName = htModel.C_InsuranceName ProductName = htModel.C_InsuranceName
}, },
Dispute = new DisputeInfo() Dispute = new DisputeInfo()
{ {
Resolution = htModel.C_SolveType ?? 1, Resolution = htModel.C_SolveType ?? 1,
//TribunalName = htModel.Arbitration_Commission, //TribunalName = htModel.Arbitration_Commission,
//CourtName = htModel.Court //CourtName = htModel.Court
}, },
Activities = Activities.ToArray(), Activities = Activities.ToArray(),
Shoppings = Shoppings.ToArray(), Shoppings = Shoppings.ToArray(),
GroupAgreement = new GroupAgreement() GroupAgreement = new GroupAgreement()
{ {
Resolution = htModel.C_IsAgreeTravel == 1 ? (int)GroupAgreementResolution.EntrustOtherAgency : Resolution = htModel.C_IsAgreeTravel == 1 ? (int)GroupAgreementResolution.EntrustOtherAgency :
htModel.C_IsAgreeDelay == 1 ? (int)GroupAgreementResolution.Delay : htModel.C_IsAgreeDelay == 1 ? (int)GroupAgreementResolution.Delay :
htModel.C_IsAgreeCndorse == 1 ? (int)GroupAgreementResolution.ChangeRoute : htModel.C_IsAgreeCndorse == 1 ? (int)GroupAgreementResolution.ChangeRoute :
htModel.C_IsAgreeRemove == 1 ? (int)GroupAgreementResolution.Terminate : (int)GroupAgreementResolution.Other, htModel.C_IsAgreeRemove == 1 ? (int)GroupAgreementResolution.Terminate : (int)GroupAgreementResolution.Other,
LeastCustomerNumber = htModel.C_LowNum ?? 0, LeastCustomerNumber = htModel.C_LowNum ?? 0,
AgreeToTransfer = htModel.C_IsAgreeTravel == 1, AgreeToTransfer = htModel.C_IsAgreeTravel == 1,
TransferToCompanyName = htModel.C_AgreeTravelName, TransferToCompanyName = htModel.C_AgreeTravelName,
AgreeToDelay = htModel.C_IsAgreeDelay == 1, AgreeToDelay = htModel.C_IsAgreeDelay == 1,
AgreeToChangeLine = htModel.C_IsAgreeCndorse == 1, AgreeToChangeLine = htModel.C_IsAgreeCndorse == 1,
AgreeToTerminate = htModel.C_IsAgreeRemove == 1, AgreeToTerminate = htModel.C_IsAgreeRemove == 1,
AgreeToMerge = htModel.C_IsAgreeSpellGroup == 1, AgreeToMerge = htModel.C_IsAgreeSpellGroup == 1,
MergeToCompanyName = htModel.C_SpellGroupName MergeToCompanyName = htModel.C_SpellGroupName
} }
}; };
if (htModel.CType == 1) if (htModel.CType == 1)
{ {
//走单项合同 //走单项合同
#region 开始组装数据 #region 开始组装数据
req.TemplateId = "E00001"; req.TemplateId = "E00001";
req.Entrustment = new Entrustment() req.Entrustment = new Entrustment()
{ {
Order = new Order() { } Order = new Order() { }
}; };
#region 机票 #region 机票
if (htModel.TicketTotalDepositPrice > 0) if (htModel.TicketTotalDepositPrice > 0)
{
var Flights = new List<OneTwoThreeZeroOne.EContracts.Flight>();
foreach (var item in htModel.ContractTicketList)
{
Flights.Add(new OneTwoThreeZeroOne.EContracts.Flight()
{
DepartureTime = item.TicketTime,
Source = new City()
{ {
var Flights = new List<OneTwoThreeZeroOne.EContracts.Flight>(); Description = item.StartPlace
foreach (var item in htModel.ContractTicketList) },
{ Destination = new City()
Flights.Add(new OneTwoThreeZeroOne.EContracts.Flight() {
{ Description = item.ArrivePlace
DepartureTime = item.TicketTime, },
Source = new City() TripType = item.AirType,
{ TotalNumber = item.TotalNumber
Description = item.StartPlace });
}, }
Destination = new City()
{
Description = item.ArrivePlace
},
TripType = item.AirType,
TotalNumber = item.TotalNumber
});
}
req.Entrustment.Order.AirTickets = new AirTicket[] { req.Entrustment.Order.AirTickets = new AirTicket[] {
new AirTicket() new AirTicket()
{ {
TotalCount = htModel.TicketTotalNum, TotalCount = htModel.TicketTotalNum,
...@@ -1303,67 +1371,67 @@ namespace REBORN.Module.DMCModule ...@@ -1303,67 +1371,67 @@ namespace REBORN.Module.DMCModule
Memo = htModel.TicketDescription Memo = htModel.TicketDescription
} }
}; };
}; };
#endregion #endregion
#region 酒店 #region 酒店
if (htModel.HotelTotalPrice > 0) if (htModel.HotelTotalPrice > 0)
{
var Accommodations = new List<AccommodationItem>();
foreach (var item in htModel.ContractHotelList)
{
Accommodations.Add(new AccommodationItem()
{
Name = item.HotelName,
Address = new Address()
{ {
var Accommodations = new List<AccommodationItem>(); Description = item.Country
foreach (var item in htModel.ContractHotelList) },
{ CheckInDate = item.CheckInDate,
Accommodations.Add(new AccommodationItem() CheckOutDate = item.OutDate,
{ RoomType = item.RoomType,
Rooms = !string.IsNullOrEmpty(item.DoubleRoom) ? Convert.ToInt32(item.DoubleRoom) : !string.IsNullOrEmpty(item.SingleRoom) ? Convert.ToInt32(item.SingleRoom) : !string.IsNullOrEmpty(item.ThirdRoom) ? Convert.ToInt32(item.ThirdRoom) : Convert.ToInt32(item.AdultNum),
Name = item.HotelName, RoomPrice = Convert.ToDecimal(item.RoomPrice)
Address = new Address() });
{ }
Description = item.Country
},
CheckInDate = item.CheckInDate,
CheckOutDate = item.OutDate,
RoomType = item.RoomType,
Rooms = !string.IsNullOrEmpty(item.DoubleRoom) ? Convert.ToInt32(item.DoubleRoom) : !string.IsNullOrEmpty(item.SingleRoom) ? Convert.ToInt32(item.SingleRoom) : !string.IsNullOrEmpty(item.ThirdRoom) ? Convert.ToInt32(item.ThirdRoom) : Convert.ToInt32(item.AdultNum),
RoomPrice = Convert.ToDecimal(item.RoomPrice)
});
}
req.Entrustment.Order.Accommodation = new Accommodation[] { req.Entrustment.Order.Accommodation = new Accommodation[] {
new Accommodation(){ new Accommodation(){
Accommodations = Accommodations.ToArray(), Accommodations = Accommodations.ToArray(),
TotalPrice = htModel.HotelTotalPrice, TotalPrice = htModel.HotelTotalPrice,
Memo= htModel.HotelDescription Memo= htModel.HotelDescription
} }
}; };
} }
#endregion #endregion
#region 用车(接机) #region 用车(接机)
if (htModel.PickUpTotalPrice > 0) if (htModel.PickUpTotalPrice > 0)
{
var TransportServices = new List<TransportServiceItem>();
foreach (var item in htModel.ContractPickUpList)
{
TransportServices.Add(new TransportServiceItem()
{
Time = item.UseTime,
Model = item.BusType,
Cost = item.BusPrice,
PassengerNumber = Convert.ToInt32(item.UseNum),
ServiceType = Convert.ToInt32(item.UseBusType),
Source = new City()
{ {
var TransportServices = new List<TransportServiceItem>(); Description = item.StartPlace,
foreach (var item in htModel.ContractPickUpList) },
{ Destination = new City()
TransportServices.Add(new TransportServiceItem() {
{ Description = item.ArrivePlace
Time = item.UseTime, }
Model = item.BusType, });
Cost = item.BusPrice, }
PassengerNumber = Convert.ToInt32(item.UseNum),
ServiceType = Convert.ToInt32(item.UseBusType),
Source = new City()
{
Description = item.StartPlace,
},
Destination = new City()
{
Description = item.ArrivePlace
}
});
}
req.Entrustment.Order.TransportService = new TransportService[] { req.Entrustment.Order.TransportService = new TransportService[] {
new TransportService(){ new TransportService(){
TransportServices = TransportServices.ToArray(), TransportServices = TransportServices.ToArray(),
TotalCost = htModel.PickUpTotalPrice, TotalCost = htModel.PickUpTotalPrice,
...@@ -1371,33 +1439,33 @@ namespace REBORN.Module.DMCModule ...@@ -1371,33 +1439,33 @@ namespace REBORN.Module.DMCModule
TotalNumber = htModel.PickUpTNumber TotalNumber = htModel.PickUpTNumber
} }
}; };
} }
#endregion #endregion
#region 签证 #region 签证
if (htModel.VisaTotalPrice > 0) if (htModel.VisaTotalPrice > 0)
{
var VisaServices = new List<VisaServiceItem>();
foreach (var item in htModel.ContractVisaList)
{
VisaServices.Add(new VisaServiceItem()
{
Type = item.VisaType == "签证" ? 1 : item.VisaType == "签注" ? 2 : 3,
Reason = item.VisaReason,
DepartureTime = item.StopTime,
EntryTime = item.Number,
Time = item.VisaDate,
WeekdayNumber = !string.IsNullOrEmpty(item.SigningDay) ? Convert.ToInt32(item.SigningDay) : 0,
Cost = Convert.ToDecimal(item.VisaPrice),
Address = new Address()
{ {
var VisaServices = new List<VisaServiceItem>(); Country = item.Country
foreach (var item in htModel.ContractVisaList) }
{ });
VisaServices.Add(new VisaServiceItem() }
{
Type = item.VisaType == "签证" ? 1 : item.VisaType == "签注" ? 2 : 3,
Reason = item.VisaReason,
DepartureTime = item.StopTime,
EntryTime = item.Number,
Time = item.VisaDate,
WeekdayNumber = !string.IsNullOrEmpty(item.SigningDay) ? Convert.ToInt32(item.SigningDay) : 0,
Cost = Convert.ToDecimal(item.VisaPrice),
Address = new Address()
{
Country = item.Country
}
});
}
req.Entrustment.Order.VisaService = new VisaService[] { req.Entrustment.Order.VisaService = new VisaService[] {
new VisaService(){ new VisaService(){
VisaServices = VisaServices.ToArray(), VisaServices = VisaServices.ToArray(),
TotalCost = htModel.VisaTotalPrice, TotalCost = htModel.VisaTotalPrice,
...@@ -1406,41 +1474,41 @@ namespace REBORN.Module.DMCModule ...@@ -1406,41 +1474,41 @@ namespace REBORN.Module.DMCModule
VisaDeadline = htModel.VisaDeadline VisaDeadline = htModel.VisaDeadline
} }
}; };
} }
#endregion #endregion
#region + #region +
if (htModel.TicketAndHotelTotalPrice > 0) if (htModel.TicketAndHotelTotalPrice > 0)
{ {
//暂时不用了 一年多都没合同 //暂时不用了 一年多都没合同
} }
#endregion #endregion
#region 其他服务 #region 其他服务
if (htModel.OtherConventionPrice > 0) if (htModel.OtherConventionPrice > 0)
{ {
req.Entrustment.Order.OtherService = new OtherService[] { req.Entrustment.Order.OtherService = new OtherService[] {
new OtherService(){ new OtherService(){
Item = htModel.OtherConvention, Item = htModel.OtherConvention,
TotalCost = htModel.OtherConventionPrice??0, TotalCost = htModel.OtherConventionPrice??0,
TotalNumber = htModel.OtherTNumber TotalNumber = htModel.OtherTNumber
} }
}; };
} }
#endregion #endregion
var payload = service.GetJson(req); var payload = service.GetJson(req);
LogHelper.Write(payload); LogHelper.Write(payload);
var response = service.ApplyContract(payload); var response = service.ApplyContract(payload);
LogHelper.WriteInfo(JsonHelper.Serialize(response)); LogHelper.WriteInfo(JsonHelper.Serialize(response));
#endregion #endregion
if (response.Error == null) if (response.Error == null)
{ {
#region 更新合同 #region 更新合同
Dictionary<string, object> keyValues = new Dictionary<string, object>() { Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Travel_Contract_Extend.ThirdContractID), response.Data.ContractNumber}, { nameof(RB_Travel_Contract_Extend.ThirdContractID), response.Data.ContractNumber},
{ nameof(RB_Travel_Contract_Extend.T_ContractNum), response.Data.ContractNumber}, { nameof(RB_Travel_Contract_Extend.T_ContractNum), response.Data.ContractNumber},
{ nameof(RB_Travel_Contract_Extend.ThirdContractSignUrl), response.Data.SigningURL}, { nameof(RB_Travel_Contract_Extend.ThirdContractSignUrl), response.Data.SigningURL},
...@@ -1448,96 +1516,96 @@ namespace REBORN.Module.DMCModule ...@@ -1448,96 +1516,96 @@ namespace REBORN.Module.DMCModule
{ nameof(RB_Travel_Contract_Extend.ThirdContractFileUrl), response.Data.FileURL}, { nameof(RB_Travel_Contract_Extend.ThirdContractFileUrl), response.Data.FileURL},
{ nameof(RB_Travel_Contract_Extend.ThirdContractState), 1}, { nameof(RB_Travel_Contract_Extend.ThirdContractState), 1},
}; };
List<WhereHelper> wheres = new List<WhereHelper>() { List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){ new WhereHelper(){
FiledName = nameof(RB_Travel_Contract_Extend.ID), FiledName = nameof(RB_Travel_Contract_Extend.ID),
FiledValue = htModel.ID, FiledValue = htModel.ID,
OperatorEnum = OperatorEnum.Equal OperatorEnum = OperatorEnum.Equal
} }
}; };
travel_ContractRepository.Update(keyValues, wheres); travel_ContractRepository.Update(keyValues, wheres);
//查看是否要 作废合同 //查看是否要 作废合同
if (!string.IsNullOrEmpty(htModel.ThirdContractID) && htModel.ThirdContractID != response.Data.ContractNumber) if (!string.IsNullOrEmpty(htModel.ThirdContractID) && htModel.ThirdContractID != response.Data.ContractNumber)
{ {
//获取一下合同状态 //获取一下合同状态
service.GetContractStatus(htModel.ThirdContractID); service.GetContractStatus(htModel.ThirdContractID);
if (htModel.ThirdContractState == 1 || htModel.ThirdContractState == 2) if (htModel.ThirdContractState == 1 || htModel.ThirdContractState == 2)
{
//合同编号不一样了 作废之前的合同
var result = service.InvalidateContract(htModel.ThirdContractID);
LogHelper.WriteInfo(JsonHelper.Serialize(result));
//获取一下合同状态
service.GetContractStatus(htModel.ThirdContractID);
}
}
#endregion
}
}
else if (htModel.CType == 2)
{ {
req.TemplateId = "A00001"; //合同编号不一样了 作废之前的合同
var result = service.InvalidateContract(htModel.ThirdContractID);
LogHelper.WriteInfo(JsonHelper.Serialize(result));
//获取一下合同状态
service.GetContractStatus(htModel.ThirdContractID);
}
}
#endregion
}
}
else if (htModel.CType == 2)
{
req.TemplateId = "A00001";
var payload = service.GetJson(req); var payload = service.GetJson(req);
LogHelper.Write(payload); LogHelper.Write(payload);
var response = service.ApplyContract(payload); var response = service.ApplyContract(payload);
LogHelper.WriteInfo(JsonHelper.Serialize(response)); LogHelper.WriteInfo(JsonHelper.Serialize(response));
if (response.Error.Code == 0) if (response.Error.Code == 0)
{ {
#region 更新合同 #region 更新合同
Dictionary<string, object> keyValues = new Dictionary<string, object>() { Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Contract_Extend.ThirdContractID), response.Data.ContractNumber}, { nameof(RB_Contract_Extend.ThirdContractID), response.Data.ContractNumber},
{ nameof(RB_Contract_Extend.ThirdContractSignUrl), response.Data.SigningURL}, { nameof(RB_Contract_Extend.ThirdContractSignUrl), response.Data.SigningURL},
{ nameof(RB_Contract_Extend.ThirdContractQRCode), response.Data.QRCodeURL}, { nameof(RB_Contract_Extend.ThirdContractQRCode), response.Data.QRCodeURL},
{ nameof(RB_Contract_Extend.ThirdContractState), 1}, { nameof(RB_Contract_Extend.ThirdContractState), 1},
}; };
List<WhereHelper> wheres = new List<WhereHelper>() { List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){ new WhereHelper(){
FiledName = nameof(RB_Contract_Extend.Id), FiledName = nameof(RB_Contract_Extend.Id),
FiledValue = htModel.ID, FiledValue = htModel.ID,
OperatorEnum = OperatorEnum.Equal OperatorEnum = OperatorEnum.Equal
} }
}; };
contractRepository.Update(keyValues, wheres); contractRepository.Update(keyValues, wheres);
#endregion #endregion
} }
} }
else if (htModel.CType == 3) else if (htModel.CType == 3)
{ {
req.TemplateId = "D00001"; req.TemplateId = "D00001";
var Meals = new List<Meal>() { }; var Meals = new List<Meal>() { };
if (!string.IsNullOrEmpty(htModel.C_BreakfastAddress) || !string.IsNullOrEmpty(htModel.C_BreakfastBasic)) if (!string.IsNullOrEmpty(htModel.C_BreakfastAddress) || !string.IsNullOrEmpty(htModel.C_BreakfastBasic))
{ {
Meals.Add(new Meal() Meals.Add(new Meal()
{ {
Type = "早餐", Type = "早餐",
Place = htModel.C_BreakfastAddress, Place = htModel.C_BreakfastAddress,
Standard = htModel.C_BreakfastBasic Standard = htModel.C_BreakfastBasic
}); });
} }
if (!string.IsNullOrEmpty(htModel.C_LunchAddress) || !string.IsNullOrEmpty(htModel.C_LunchBasic)) if (!string.IsNullOrEmpty(htModel.C_LunchAddress) || !string.IsNullOrEmpty(htModel.C_LunchBasic))
{ {
Meals.Add(new Meal() Meals.Add(new Meal()
{ {
Type = "午餐", Type = "午餐",
Place = htModel.C_LunchAddress, Place = htModel.C_LunchAddress,
Standard = htModel.C_LunchBasic Standard = htModel.C_LunchBasic
}); });
} }
if (!string.IsNullOrEmpty(htModel.C_DinnerAddress) || !string.IsNullOrEmpty(htModel.C_DinnerBasic)) if (!string.IsNullOrEmpty(htModel.C_DinnerAddress) || !string.IsNullOrEmpty(htModel.C_DinnerBasic))
{ {
Meals.Add(new Meal() Meals.Add(new Meal()
{ {
Type = "晚餐", Type = "晚餐",
Place = htModel.C_DinnerAddress, Place = htModel.C_DinnerAddress,
Standard = htModel.C_DinnerBasic Standard = htModel.C_DinnerBasic
}); });
} }
var Routes = new List<RouteStop>() { var Routes = new List<RouteStop>() {
new RouteStop(){ new RouteStop(){
Day=1, Day=1,
Transport = new Transport(){ Transport = new Transport(){
...@@ -1551,44 +1619,40 @@ namespace REBORN.Module.DMCModule ...@@ -1551,44 +1619,40 @@ namespace REBORN.Module.DMCModule
} }
}; };
req.HasShopping = false; req.HasShopping = false;
//if (!string.IsNullOrEmpty(htModel.ShopTicketName)) { //if (!string.IsNullOrEmpty(htModel.ShopTicketName)) {
// req.HasShopping = true; // req.HasShopping = true;
// req.ShoppingViewSpot = htModel.ShopTicketName; // req.ShoppingViewSpot = htModel.ShopTicketName;
//} //}
req.Itinerary.Routes = Routes.ToArray(); req.Itinerary.Routes = Routes.ToArray();
var payload = service.GetJson(req); var payload = service.GetJson(req);
LogHelper.Write(payload); LogHelper.Write(payload);
var response = service.ApplyContract(payload); var response = service.ApplyContract(payload);
LogHelper.WriteInfo(JsonHelper.Serialize(response)); LogHelper.WriteInfo(JsonHelper.Serialize(response));
if (response.Error.Code == 0) if (response.Error.Code == 0)
{ {
#region 更新合同 #region 更新合同
Dictionary<string, object> keyValues = new Dictionary<string, object>() { Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Contract_Extend.ThirdContractID), response.Data.ContractNumber}, { nameof(RB_Contract_Extend.ThirdContractID), response.Data.ContractNumber},
{ nameof(RB_Contract_Extend.ThirdContractSignUrl), response.Data.SigningURL}, { nameof(RB_Contract_Extend.ThirdContractSignUrl), response.Data.SigningURL},
{ nameof(RB_Contract_Extend.ThirdContractQRCode), response.Data.QRCodeURL}, { nameof(RB_Contract_Extend.ThirdContractQRCode), response.Data.QRCodeURL},
{ nameof(RB_Contract_Extend.ThirdContractState), 1}, { nameof(RB_Contract_Extend.ThirdContractState), 1},
}; };
List<WhereHelper> wheres = new List<WhereHelper>() { List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){ new WhereHelper(){
FiledName = nameof(RB_Contract_Extend.Id), FiledName = nameof(RB_Contract_Extend.Id),
FiledValue = htModel.ID, FiledValue = htModel.ID,
OperatorEnum = OperatorEnum.Equal OperatorEnum = OperatorEnum.Equal
} }
}; };
contractRepository.Update(keyValues, wheres); contractRepository.Update(keyValues, wheres);
#endregion #endregion
}
}
}
} }
} }
return flag;
} }
/// <summary> /// <summary>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment