Commit cf009c3f authored by liudong1993's avatar liudong1993

1

parent 849f0c76
......@@ -581,11 +581,11 @@ namespace OneTwoThreeZeroOne.EContracts {
/// <summary>成人费用(元)/每人</summary>
[JsonPropertyName("adultCost")] public decimal AdultCost { get; set; }
/// <summary>儿童费用(元)/每人</summary>
[JsonPropertyName("childCost")] public decimal ChildCost { get; set; }
[JsonPropertyName("childCost")] public decimal? ChildCost { get; set; }
/// <summary>导游服务费(元)/每人</summary>
[JsonPropertyName("guideServiceCost")] public decimal GuideServiceCost { get; set; }
[JsonPropertyName("guideServiceCost")] public decimal? GuideServiceCost { get; set; }
/// <summary>单间差费用</summary>
[JsonPropertyName("singleSupplementCost")] public decimal SingleSupplementCost { get; set; }
//[JsonPropertyName("singleSupplementCost")] public decimal? SingleSupplementCost { get; set; }
/// <summary>总费用(元)</summary>
[JsonPropertyName("totalCost")] public decimal TotalCost { get; set; }
/// <summary>餐饮费用</summary>
......
......@@ -316,8 +316,29 @@ namespace REBORN.Module.DMCModule
{nameof(RB_Contract_Extend.DepositDate),model.DepositDate },
{nameof(RB_Contract_Extend.FinalPrice),model.FinalPrice },
{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));
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
{
......@@ -326,11 +347,13 @@ namespace REBORN.Module.DMCModule
var newId = contractRepository.Insert(model);
model.Id = newId;
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);
if (cmsg != "") { return flag; }
Console.WriteLine("1");
//审核通过, 同步上传合同至 公众号
Model.Entity.Dmc.RB_Contract htModel = contractRepository.GetEntity(newId);
if (string.IsNullOrEmpty(htModel.UnionGuestIds)) { return false; }
......@@ -340,218 +363,231 @@ namespace REBORN.Module.DMCModule
htModel.Client_Name = "刘东";
htModel.Client_IDCardNum = "510112199301013617";
htModel.Client_Call = "18328620563";
CreateContractToLYJ(service, htModel);
}
}
return flag;
}
Console.WriteLine("3");
#region 开始组装数据
//查询旅客名单
var guestList = travel_GuestRepository.GetTravelGuestList(new RB_Travel_Guest_Extend() { GuestIdStr = htModel.UnionGuestIds });
List<object> GuestInfo = new List<object>();
List<Tourist> Tourist = new List<Tourist>();
TouristId QZModel = new TouristId()
{
IDType = (int)IDType.IDCard,
IDNumber = htModel.Client_IDCardNum
};
int Number = 1;
foreach (var item in guestList)
{
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 }; }
bool IsChild = false;
if (item.Birthday.HasValue && htModel.StartDate.HasValue) {
// 计算基础年龄(年份差)
int age = htModel.StartDate.Value.Year - item.Birthday.Value.Year;
// 如果今年生日还没过,年龄减1
if (item.Birthday.Value.Date > htModel.StartDate.Value.AddYears(-age)) { age--; }
/// <summary>
/// 创建合同
/// </summary>
/// <param name="service"></param>
/// <param name="htModel"></param>
private void CreateContractToLYJ(TourismContractService service, Model.Entity.Dmc.RB_Contract htModel)
{
Console.WriteLine("3");
#region 开始组装数据
//查询旅客名单
var guestList = travel_GuestRepository.GetTravelGuestList(new RB_Travel_Guest_Extend() { GuestIdStr = htModel.UnionGuestIds });
List<object> GuestInfo = new List<object>();
List<Tourist> Tourist = new List<Tourist>();
TouristId QZModel = new TouristId()
{
IDType = (int)IDType.IDCard,
IDNumber = htModel.Client_IDCardNum
};
int Number = 1;
foreach (var item in guestList)
{
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 }; }
bool IsChild = false;
if (item.Birthday.HasValue && htModel.StartDate.HasValue)
{
if (age < 12) { IsChild = true; }
}
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
});
// 计算基础年龄(年份差)
int age = htModel.StartDate.Value.Year - item.Birthday.Value.Year;
// 如果今年生日还没过,年龄减1
if (item.Birthday.Value.Date > htModel.StartDate.Value.AddYears(-age)) { age--; }
if (!string.IsNullOrEmpty(htModel.Client_Name) && htModel.Client_Name == (item.SurName + item.Name))
{
QZModel = JsonHelper.DeserializeObject<TouristId>(JsonHelper.Serialize(TouristId));//用名单上的
}
}
if (age < 12) { IsChild = true; }
}
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>();
if (!string.IsNullOrEmpty(htModel.ShopProtocol))
var Shoppings = new List<Shopping>();
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>();
foreach (var item in shopProtocolList)
{
JObject parms = JObject.Parse(item.ToString());
Shoppings.Add(new Shopping()
{
Date = parms.GetStringValue("specificTime"),
Place = parms.GetStringValue("Address"),
StayDuration = parms.GetStringValue("stayTime"),
ShoppingPlace = parms.GetStringValue("shoppName"),
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>();
if (!string.IsNullOrEmpty(htModel.PayProtocol))
var Activities = new List<Activity>();
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>();
foreach (var item in payProtocolList)
{
JObject parms = JObject.Parse(item.ToString());
Activities.Add(new Activity()
{
Date = parms.GetStringValue("specificTime"),
Place = parms.GetStringValue("Address"),
Item = parms.GetStringValue("programName"),
Fee = parms.GetDecimal("money"),
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");
var req = new ApplyContractRequest
Console.WriteLine("4");
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,
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()
{
Description = htModel.Company_Address,
Zip = htModel.Company_Post_Code
},
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[] {
Description = htModel.Company_Address,
Zip = htModel.Company_Post_Code
},
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(){
Day=1,
Description=AddTableBorder(htModel.Travel_Content)
}
}
},
//客人名单
TouristsInfo = new TouristsInfo
{
TotalNumber = htModel.GuestNum,
Tourists = Tourist.ToArray()
},
//旅客代表
Signatory = new Signatory
{
Name = htModel.Client_Name,
ID = QZModel,
Phone = htModel.Client_Call.Replace(" ", ""),
Mode = (int)SignMode.Sms,
Address = new Address()
{
Description = htModel.Client_Address,
Zip = htModel.Client_Post_Code
},
CompanyName = "",
Email = htModel.Client_Email,
Fax = htModel.Client_Fax,
SigningPlace = htModel.Contract_Place,
OfficePhone = ""
},
//费用
Cost = new CostInfo()
{
AdultCost = htModel.Adult_Price ?? 0,
ChildCost = htModel.Child_Price ?? 0,
GuideServiceCost = htModel.Service_Price ?? 0,
TotalCost = htModel.Order_Price ?? 0,
PaymentTime = htModel.Pay_Date,
PaymentMethod = htModel.PayType ?? 1,
//ExcludeNote = "团费不包含:",
PaymentDescription = htModel.PriceDescription
},
Insurance = new InsuranceInfo()
{
PurchaseMethod = htModel.Insurance_Opinion ?? 1,
ProductName = !string.IsNullOrEmpty(htModel.Insurance_Product) ? htModel.Insurance_Product : htModel.Insurance_Company
},
Dispute = new DisputeInfo()
{
Resolution = htModel.Settle_Dispute_Mode ?? 1,
TribunalName = htModel.Arbitration_Commission,
CourtName = htModel.Court
},
//自费项目
Activities = Activities.ToArray(),
//购物
Shoppings = Shoppings.ToArray(),
GroupAgreement = new GroupAgreement()
{
Resolution = htModel.Instead_Opinion == 1 ? (int)GroupAgreementResolution.EntrustOtherAgency :
htModel.Delay_Opinion == "1" ? (int)GroupAgreementResolution.Delay :
htModel.Change_Opinion == "1" ? (int)GroupAgreementResolution.ChangeRoute :
htModel.Terminate_Opinion == "1" ? (int)GroupAgreementResolution.Terminate : (int)GroupAgreementResolution.Other,
LeastCustomerNumber = htModel.Min_Number ?? 0,
AgreeToDelay = htModel.Delay_Opinion == "1" ? true : false,
AgreeToChangeLine = htModel.Change_Opinion == "1" ? true : false,
AgreeToTerminate = htModel.Terminate_Opinion == "1" ? true : false,
AgreeToMerge = htModel.Carpool_Opinion == "1" ? true : false,
MergeToCompanyName = htModel.Carpool_Company
}
};
},
//客人名单
TouristsInfo = new TouristsInfo
{
TotalNumber = htModel.GuestNum,
Tourists = Tourist.ToArray()
},
//旅客代表
Signatory = new Signatory
{
Name = htModel.Client_Name,
ID = QZModel,
Phone = htModel.Client_Call.Replace(" ", ""),
Mode = (int)SignMode.Sms,
Address = new Address()
{
Description = htModel.Client_Address,
Zip = htModel.Client_Post_Code
},
CompanyName = "",
Email = htModel.Client_Email,
Fax = htModel.Client_Fax,
SigningPlace = htModel.Contract_Place,
OfficePhone = ""
},
//费用
Cost = new CostInfo()
{
AdultCost = htModel.Adult_Price ?? 0,
ChildCost = htModel.Child_Price ==0?null : htModel.Child_Price,
GuideServiceCost = htModel.Service_Price ==0?null : htModel.Service_Price,
TotalCost = htModel.Order_Price ?? 0,
PaymentTime = htModel.Pay_Date,
PaymentMethod = htModel.PayType ?? 1,
//ExcludeNote = "团费不包含:",
PaymentDescription = htModel.PriceDescription
},
Insurance = new InsuranceInfo()
{
PurchaseMethod = htModel.Insurance_Opinion ?? 1,
ProductName = !string.IsNullOrEmpty(htModel.Insurance_Product) ? htModel.Insurance_Product : htModel.Insurance_Company
},
Dispute = new DisputeInfo()
{
Resolution = htModel.Settle_Dispute_Mode ?? 1,
TribunalName = htModel.Arbitration_Commission,
CourtName = htModel.Court
},
//自费项目
Activities = Activities.ToArray(),
//购物
Shoppings = Shoppings.ToArray(),
GroupAgreement = new GroupAgreement()
{
Resolution = htModel.Instead_Opinion == 1 ? (int)GroupAgreementResolution.EntrustOtherAgency :
htModel.Delay_Opinion == "1" ? (int)GroupAgreementResolution.Delay :
htModel.Change_Opinion == "1" ? (int)GroupAgreementResolution.ChangeRoute :
htModel.Terminate_Opinion == "1" ? (int)GroupAgreementResolution.Terminate : (int)GroupAgreementResolution.Other,
LeastCustomerNumber = htModel.Min_Number ?? 0,
AgreeToDelay = htModel.Delay_Opinion == "1" ? true : false,
AgreeToChangeLine = htModel.Change_Opinion == "1" ? true : false,
AgreeToTerminate = htModel.Terminate_Opinion == "1" ? true : false,
AgreeToMerge = htModel.Carpool_Opinion == "1" ? true : false,
MergeToCompanyName = htModel.Carpool_Company
}
};
var payload = service.GetJson(req);
LogHelper.Write(payload);
var response = service.ApplyContract(payload);
var payload = service.GetJson(req);
LogHelper.Write(payload);
var response = service.ApplyContract(payload, htModel.ThirdContractID);
LogHelper.Write(JsonHelper.Serialize(response));
Console.WriteLine("5");
#endregion
LogHelper.Write(JsonHelper.Serialize(response));
Console.WriteLine("5");
#endregion
#region 更新合同
if (response.Error == null)
{
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
#region 更新合同
if (response.Error == null)
{
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Contract_Extend.ContractNum), response.Data.ContractNumber},
{ nameof(RB_Contract_Extend.ThirdContractID), response.Data.ContractNumber},
{ nameof(RB_Contract_Extend.ThirdContractSignUrl), response.Data.SigningURL},
......@@ -559,35 +595,32 @@ namespace REBORN.Module.DMCModule
{ nameof(RB_Contract_Extend.ThirdContractFileUrl), response.Data.FileURL},
{ nameof(RB_Contract_Extend.ThirdContractState), 1},
};
List<WhereHelper> wheres = new List<WhereHelper>() {
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName = nameof(RB_Contract_Extend.Id),
FiledValue = htModel.Id,
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);
if (htModel.ThirdContractState == 1 || htModel.ThirdContractState == 2)
{
//合同编号不一样了 作废之前的合同
var result = service.InvalidateContract(htModel.ThirdContractID);
LogHelper.WriteInfo(JsonHelper.Serialize(result));
//获取一下合同状态
service.GetContractStatus(htModel.ThirdContractID);
}
}
//获取一下合同状态
service.GetContractStatus(htModel.ThirdContractID);
if (htModel.ThirdContractState == 1 || htModel.ThirdContractState == 2)
{
//合同编号不一样了 作废之前的合同
var result = service.InvalidateContract(htModel.ThirdContractID);
LogHelper.WriteInfo(JsonHelper.Serialize(result));
//获取一下合同状态
service.GetContractStatus(htModel.ThirdContractID);
}
#endregion
}
}
return flag;
#endregion
}
/// <summary>
......@@ -981,6 +1014,27 @@ namespace REBORN.Module.DMCModule
{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));
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
{
......@@ -997,304 +1051,318 @@ namespace REBORN.Module.DMCModule
//审核通过, 同步上传合同至 公众号
if (string.IsNullOrEmpty(htModel.GuestJson)) { return false; }
//注意默认值 正式需要删除
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);
}
}
}
return flag;
}
//这一套合同 没有客人列表,走 合同里抓取
//查询旅客名单
htModel.ContractGuestList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractGuest>>(htModel.GuestJson);
List<object> GuestInfo = new List<object>();
List<Tourist> Tourist = new List<Tourist>();
TouristId QZModel = new TouristId()
{
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 }; }
/// <summary>
/// 上传旅游局
/// </summary>
/// <param name="htModel"></param>
/// <param name="service"></param>
private void CreateSingleContractToLYJ(RB_Travel_Contract_Extend htModel, TourismContractService service)
{
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.ContractGuestList = Common.Plugin.JsonHelper.DeserializeObject<List<ContractGuest>>(htModel.GuestJson);
List<object> GuestInfo = new List<object>();
List<Tourist> Tourist = new List<Tourist>();
TouristId QZModel = new TouristId()
{
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 }; }
#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>();
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);
}
#region 解析其他json
var Shoppings = new List<Shopping>();
foreach (var item in htModel.ContractShopList)
htModel.ContractTripList = new List<ContractTrip>();
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,
Place = item.ShopAddress,
StayDuration = item.StopTime,
ShoppingPlace = item.ShopName,
Goods = item.ShopGoodName,
Memo = item.OtherInstruction
});
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 Activities = new List<Activity>();
foreach (var item in htModel.ContractSelfFeeList)
{
Activities.Add(new Activity()
{
Date = item.SelfFeeTime,
Place = item.SelfFeeAddress,
Item = item.SelfFeeName,
Fee = Convert.ToDecimal(item.SelfFeePrice),
StayDuration = item.StopTime,
Memo = item.OtherInstruction
});
}
#endregion
var Shoppings = new List<Shopping>();
foreach (var item in htModel.ContractShopList)
{
Shoppings.Add(new Shopping()
{
Date = item.ShopTime,
Place = item.ShopAddress,
StayDuration = item.StopTime,
ShoppingPlace = item.ShopName,
Goods = item.ShopGoodName,
Memo = item.OtherInstruction
});
}
var req = new ApplyContractRequest
{
ERPContractId = htModel.T_ContractNum,
AuthType = QZModel.IDType == 1 ? "1" : "0",
TemplateId = "",//子方法新增
CallbackURL = "http://htapi.oytour.com/api/PayNotify/ContractNotify",
IsMultiSignatory = false,
//SupplementaryClause = htModel.OtherConvention,//其他约定事项
SupplementaryClause = ReplaceParagraphTagsWithNewlines2(htModel.OtherConvention),//其他约定事项
//公司信息
TravelAgency = new TravelAgencyInfo
{
TransactorName = htModel.TravelAgency_DealMan,
TransactorPhone = !string.IsNullOrEmpty(htModel.TravelAgency_Tel) ? htModel.TravelAgency_Tel : htModel.C_ComplaintTel,
//LocalComplaintPhone = htModel.C_ComplaintTel,
ComplaintPhone = htModel.TravelAgency_ServiceTel,
ContactPhone = htModel.TravelAgency_ServiceTel,
LocalComplaintPhone = htModel.C_ComplaintTel,
ServicePhone = htModel.TravelAgency_ServiceTel,
AgencyName = htModel.TravelAgency_Name,
TravelAgencyLicenseNumber = htModel.TravelAgency_LicenseNum,
BusinessLicenseNumber = htModel.TravelAgency_LicenseNum,
AgencyAddress = new Address()
{
Description = htModel.TravelAgency_Address,
Zip = htModel.TravelAgency_PostNum
},
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[] {
var Activities = new List<Activity>();
foreach (var item in htModel.ContractSelfFeeList)
{
Activities.Add(new Activity()
{
Date = item.SelfFeeTime,
Place = item.SelfFeeAddress,
Item = item.SelfFeeName,
Fee = Convert.ToDecimal(item.SelfFeePrice),
StayDuration = item.StopTime,
Memo = item.OtherInstruction
});
}
#endregion
var req = new ApplyContractRequest
{
ERPContractId = htModel.T_ContractNum,
AuthType = QZModel.IDType == 1 ? "1" : "0",
TemplateId = "",//子方法新增
CallbackURL = "http://htapi.oytour.com/api/PayNotify/ContractNotify",
IsMultiSignatory = false,
//SupplementaryClause = htModel.OtherConvention,//其他约定事项
SupplementaryClause = ReplaceParagraphTagsWithNewlines2(htModel.OtherConvention),//其他约定事项
//公司信息
TravelAgency = new TravelAgencyInfo
{
TransactorName = htModel.TravelAgency_DealMan,
TransactorPhone = !string.IsNullOrEmpty(htModel.TravelAgency_Tel) ? htModel.TravelAgency_Tel : htModel.C_ComplaintTel,
//LocalComplaintPhone = htModel.C_ComplaintTel,
ComplaintPhone = htModel.TravelAgency_ServiceTel,
ContactPhone = htModel.TravelAgency_ServiceTel,
LocalComplaintPhone = htModel.C_ComplaintTel,
ServicePhone = htModel.TravelAgency_ServiceTel,
AgencyName = htModel.TravelAgency_Name,
TravelAgencyLicenseNumber = htModel.TravelAgency_LicenseNum,
BusinessLicenseNumber = htModel.TravelAgency_LicenseNum,
AgencyAddress = new Address()
{
Description = htModel.TravelAgency_Address,
Zip = htModel.TravelAgency_PostNum
},
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(){
Day=1,
Description=htModel.ContractTripList.Any()? AddTableBorder(htModel.ContractTripList.FirstOrDefault().TravelContent) :""
}
},
},
//客人名单
TouristsInfo = new TouristsInfo
{
TotalNumber = (htModel.C_AdultNum ?? 0) + (htModel.C_ChildrenNum ?? 0),
AdultNumber = htModel.C_AdultNum ?? 0,
ChildNumber = htModel.C_ChildrenNum ?? 0,
Tourists = Tourist.ToArray()
},
//旅客代表
Signatory = new Signatory
{
Name = htModel.Tourists_Name,
ID = QZModel,
Phone = htModel.Tourists_Tel.Replace(" ", ""),
Mode = (int)SignMode.Sms,
Address = new Address()
{
Description = htModel.Tourists_Addres,
Zip = htModel.Tourists_PostNum
},
CompanyName = "",
Email = htModel.Tourists_Email,
Fax = htModel.Tourists_Fax,
SigningPlace = htModel.TravelAgency_SignAddress,
OfficePhone = ""
},
//导游
TourGuides = new TourGuide[] {
},
//客人名单
TouristsInfo = new TouristsInfo
{
TotalNumber = (htModel.C_AdultNum ?? 0) + (htModel.C_ChildrenNum ?? 0),
AdultNumber = htModel.C_AdultNum ?? 0,
ChildNumber = htModel.C_ChildrenNum ?? 0,
Tourists = Tourist.ToArray()
},
//旅客代表
Signatory = new Signatory
{
Name = htModel.Tourists_Name,
ID = QZModel,
Phone = htModel.Tourists_Tel.Replace(" ", ""),
Mode = (int)SignMode.Sms,
Address = new Address()
{
Description = htModel.Tourists_Addres,
Zip = htModel.Tourists_PostNum
},
CompanyName = "",
Email = htModel.Tourists_Email,
Fax = htModel.Tourists_Fax,
SigningPlace = htModel.TravelAgency_SignAddress,
OfficePhone = ""
},
//导游
TourGuides = new TourGuide[] {
new TourGuide(){
Name = htModel.Guide_Name,
Phone = htModel.Guide_Tel,
TourGuideID = htModel.Guide_Num
}
},
//费用
Cost = new CostInfo()
{
AdultCost = htModel.C_AdultPrice ?? 0,
ChildCost = htModel.C_ChildrenPrice ?? 0,
GuideServiceCost = htModel.C_GuideServicePrice ?? 0,
TotalCost = htModel.C_TotalPrice ?? 0,
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),
ExcludeNote = htModel.C_NonIncludeRemark,
PaymentDescription = ""
},
Insurance = new InsuranceInfo()
{
PurchaseMethod = htModel.C_InsuranceType ?? 1,
ProductName = htModel.C_InsuranceName
},
Dispute = new DisputeInfo()
{
Resolution = htModel.C_SolveType ?? 1,
//TribunalName = htModel.Arbitration_Commission,
//CourtName = htModel.Court
},
Activities = Activities.ToArray(),
Shoppings = Shoppings.ToArray(),
GroupAgreement = new GroupAgreement()
{
Resolution = htModel.C_IsAgreeTravel == 1 ? (int)GroupAgreementResolution.EntrustOtherAgency :
htModel.C_IsAgreeDelay == 1 ? (int)GroupAgreementResolution.Delay :
htModel.C_IsAgreeCndorse == 1 ? (int)GroupAgreementResolution.ChangeRoute :
htModel.C_IsAgreeRemove == 1 ? (int)GroupAgreementResolution.Terminate : (int)GroupAgreementResolution.Other,
LeastCustomerNumber = htModel.C_LowNum ?? 0,
AgreeToTransfer = htModel.C_IsAgreeTravel == 1,
TransferToCompanyName = htModel.C_AgreeTravelName,
AgreeToDelay = htModel.C_IsAgreeDelay == 1,
AgreeToChangeLine = htModel.C_IsAgreeCndorse == 1,
AgreeToTerminate = htModel.C_IsAgreeRemove == 1,
AgreeToMerge = htModel.C_IsAgreeSpellGroup == 1,
MergeToCompanyName = htModel.C_SpellGroupName
}
};
//费用
Cost = new CostInfo()
{
AdultCost = htModel.C_AdultPrice ?? 0,
ChildCost = htModel.C_ChildrenPrice ==0 ?null : htModel.C_ChildrenPrice,
GuideServiceCost = htModel.C_GuideServicePrice ==0?null : htModel.C_GuideServicePrice,
TotalCost = htModel.C_TotalPrice ?? 0,
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),
ExcludeNote = htModel.C_NonIncludeRemark,
PaymentDescription = ""
},
Insurance = new InsuranceInfo()
{
PurchaseMethod = htModel.C_InsuranceType ?? 1,
ProductName = htModel.C_InsuranceName
},
Dispute = new DisputeInfo()
{
Resolution = htModel.C_SolveType ?? 1,
//TribunalName = htModel.Arbitration_Commission,
//CourtName = htModel.Court
},
Activities = Activities.ToArray(),
Shoppings = Shoppings.ToArray(),
GroupAgreement = new GroupAgreement()
{
Resolution = htModel.C_IsAgreeTravel == 1 ? (int)GroupAgreementResolution.EntrustOtherAgency :
htModel.C_IsAgreeDelay == 1 ? (int)GroupAgreementResolution.Delay :
htModel.C_IsAgreeCndorse == 1 ? (int)GroupAgreementResolution.ChangeRoute :
htModel.C_IsAgreeRemove == 1 ? (int)GroupAgreementResolution.Terminate : (int)GroupAgreementResolution.Other,
LeastCustomerNumber = htModel.C_LowNum ?? 0,
AgreeToTransfer = htModel.C_IsAgreeTravel == 1,
TransferToCompanyName = htModel.C_AgreeTravelName,
AgreeToDelay = htModel.C_IsAgreeDelay == 1,
AgreeToChangeLine = htModel.C_IsAgreeCndorse == 1,
AgreeToTerminate = htModel.C_IsAgreeRemove == 1,
AgreeToMerge = htModel.C_IsAgreeSpellGroup == 1,
MergeToCompanyName = htModel.C_SpellGroupName
}
};
if (htModel.CType == 1)
{
//走单项合同
#region 开始组装数据
req.TemplateId = "E00001";
if (htModel.CType == 1)
{
//走单项合同
#region 开始组装数据
req.TemplateId = "E00001";
req.Entrustment = new Entrustment()
{
Order = new Order() { }
};
req.Entrustment = new Entrustment()
{
Order = new Order() { }
};
#region 机票
if (htModel.TicketTotalDepositPrice > 0)
#region 机票
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>();
foreach (var item in htModel.ContractTicketList)
{
Flights.Add(new OneTwoThreeZeroOne.EContracts.Flight()
{
DepartureTime = item.TicketTime,
Source = new City()
{
Description = item.StartPlace
},
Destination = new City()
{
Description = item.ArrivePlace
},
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()
{
TotalCount = htModel.TicketTotalNum,
......@@ -1303,67 +1371,67 @@ namespace REBORN.Module.DMCModule
Memo = htModel.TicketDescription
}
};
};
};
#endregion
#endregion
#region 酒店
if (htModel.HotelTotalPrice > 0)
#region 酒店
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>();
foreach (var item in htModel.ContractHotelList)
{
Accommodations.Add(new AccommodationItem()
{
Name = item.HotelName,
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)
});
}
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(){
Accommodations = Accommodations.ToArray(),
TotalPrice = htModel.HotelTotalPrice,
Memo= htModel.HotelDescription
}
};
}
#endregion
}
#endregion
#region 用车(接机)
if (htModel.PickUpTotalPrice > 0)
#region 用车(接机)
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>();
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()
{
Description = item.StartPlace,
},
Destination = new City()
{
Description = item.ArrivePlace
}
});
}
Description = item.StartPlace,
},
Destination = new City()
{
Description = item.ArrivePlace
}
});
}
req.Entrustment.Order.TransportService = new TransportService[] {
req.Entrustment.Order.TransportService = new TransportService[] {
new TransportService(){
TransportServices = TransportServices.ToArray(),
TotalCost = htModel.PickUpTotalPrice,
......@@ -1371,33 +1439,33 @@ namespace REBORN.Module.DMCModule
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>();
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
}
});
}
Country = item.Country
}
});
}
req.Entrustment.Order.VisaService = new VisaService[] {
req.Entrustment.Order.VisaService = new VisaService[] {
new VisaService(){
VisaServices = VisaServices.ToArray(),
TotalCost = htModel.VisaTotalPrice,
......@@ -1406,41 +1474,41 @@ namespace REBORN.Module.DMCModule
VisaDeadline = htModel.VisaDeadline
}
};
}
}
#endregion
#endregion
#region +
if (htModel.TicketAndHotelTotalPrice > 0)
{
//暂时不用了 一年多都没合同
}
#endregion
#region +
if (htModel.TicketAndHotelTotalPrice > 0)
{
//暂时不用了 一年多都没合同
}
#endregion
#region 其他服务
if (htModel.OtherConventionPrice > 0)
{
req.Entrustment.Order.OtherService = new OtherService[] {
#region 其他服务
if (htModel.OtherConventionPrice > 0)
{
req.Entrustment.Order.OtherService = new OtherService[] {
new OtherService(){
Item = htModel.OtherConvention,
TotalCost = htModel.OtherConventionPrice??0,
TotalNumber = htModel.OtherTNumber
}
};
}
#endregion
}
#endregion
var payload = service.GetJson(req);
LogHelper.Write(payload);
var payload = service.GetJson(req);
LogHelper.Write(payload);
var response = service.ApplyContract(payload);
LogHelper.WriteInfo(JsonHelper.Serialize(response));
#endregion
var response = service.ApplyContract(payload);
LogHelper.WriteInfo(JsonHelper.Serialize(response));
#endregion
if (response.Error == null)
{
#region 更新合同
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
if (response.Error == null)
{
#region 更新合同
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Travel_Contract_Extend.ThirdContractID), response.Data.ContractNumber},
{ nameof(RB_Travel_Contract_Extend.T_ContractNum), response.Data.ContractNumber},
{ nameof(RB_Travel_Contract_Extend.ThirdContractSignUrl), response.Data.SigningURL},
......@@ -1448,96 +1516,96 @@ namespace REBORN.Module.DMCModule
{ nameof(RB_Travel_Contract_Extend.ThirdContractFileUrl), response.Data.FileURL},
{ nameof(RB_Travel_Contract_Extend.ThirdContractState), 1},
};
List<WhereHelper> wheres = new List<WhereHelper>() {
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName = nameof(RB_Travel_Contract_Extend.ID),
FiledValue = htModel.ID,
OperatorEnum = OperatorEnum.Equal
}
};
travel_ContractRepository.Update(keyValues, wheres);
travel_ContractRepository.Update(keyValues, wheres);
//查看是否要 作废合同
if (!string.IsNullOrEmpty(htModel.ThirdContractID) && htModel.ThirdContractID != response.Data.ContractNumber)
{
//获取一下合同状态
service.GetContractStatus(htModel.ThirdContractID);
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)
//查看是否要 作废合同
if (!string.IsNullOrEmpty(htModel.ThirdContractID) && htModel.ThirdContractID != response.Data.ContractNumber)
{
//获取一下合同状态
service.GetContractStatus(htModel.ThirdContractID);
if (htModel.ThirdContractState == 1 || htModel.ThirdContractState == 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);
LogHelper.Write(payload);
var payload = service.GetJson(req);
LogHelper.Write(payload);
var response = service.ApplyContract(payload);
var response = service.ApplyContract(payload);
LogHelper.WriteInfo(JsonHelper.Serialize(response));
if (response.Error.Code == 0)
{
#region 更新合同
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
LogHelper.WriteInfo(JsonHelper.Serialize(response));
if (response.Error.Code == 0)
{
#region 更新合同
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Contract_Extend.ThirdContractID), response.Data.ContractNumber},
{ nameof(RB_Contract_Extend.ThirdContractSignUrl), response.Data.SigningURL},
{ nameof(RB_Contract_Extend.ThirdContractQRCode), response.Data.QRCodeURL},
{ nameof(RB_Contract_Extend.ThirdContractState), 1},
};
List<WhereHelper> wheres = new List<WhereHelper>() {
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName = nameof(RB_Contract_Extend.Id),
FiledValue = htModel.ID,
OperatorEnum = OperatorEnum.Equal
}
};
contractRepository.Update(keyValues, wheres);
#endregion
}
}
else if (htModel.CType == 3)
{
req.TemplateId = "D00001";
contractRepository.Update(keyValues, wheres);
#endregion
}
}
else if (htModel.CType == 3)
{
req.TemplateId = "D00001";
var Meals = new List<Meal>() { };
if (!string.IsNullOrEmpty(htModel.C_BreakfastAddress) || !string.IsNullOrEmpty(htModel.C_BreakfastBasic))
{
Meals.Add(new Meal()
{
Type = "早餐",
Place = htModel.C_BreakfastAddress,
Standard = htModel.C_BreakfastBasic
});
}
if (!string.IsNullOrEmpty(htModel.C_LunchAddress) || !string.IsNullOrEmpty(htModel.C_LunchBasic))
{
Meals.Add(new Meal()
{
Type = "午餐",
Place = htModel.C_LunchAddress,
Standard = htModel.C_LunchBasic
});
}
if (!string.IsNullOrEmpty(htModel.C_DinnerAddress) || !string.IsNullOrEmpty(htModel.C_DinnerBasic))
{
Meals.Add(new Meal()
{
Type = "晚餐",
Place = htModel.C_DinnerAddress,
Standard = htModel.C_DinnerBasic
});
}
var Meals = new List<Meal>() { };
if (!string.IsNullOrEmpty(htModel.C_BreakfastAddress) || !string.IsNullOrEmpty(htModel.C_BreakfastBasic))
{
Meals.Add(new Meal()
{
Type = "早餐",
Place = htModel.C_BreakfastAddress,
Standard = htModel.C_BreakfastBasic
});
}
if (!string.IsNullOrEmpty(htModel.C_LunchAddress) || !string.IsNullOrEmpty(htModel.C_LunchBasic))
{
Meals.Add(new Meal()
{
Type = "午餐",
Place = htModel.C_LunchAddress,
Standard = htModel.C_LunchBasic
});
}
if (!string.IsNullOrEmpty(htModel.C_DinnerAddress) || !string.IsNullOrEmpty(htModel.C_DinnerBasic))
{
Meals.Add(new Meal()
{
Type = "晚餐",
Place = htModel.C_DinnerAddress,
Standard = htModel.C_DinnerBasic
});
}
var Routes = new List<RouteStop>() {
var Routes = new List<RouteStop>() {
new RouteStop(){
Day=1,
Transport = new Transport(){
......@@ -1551,44 +1619,40 @@ namespace REBORN.Module.DMCModule
}
};
req.HasShopping = false;
//if (!string.IsNullOrEmpty(htModel.ShopTicketName)) {
// req.HasShopping = true;
// req.ShoppingViewSpot = htModel.ShopTicketName;
//}
req.HasShopping = false;
//if (!string.IsNullOrEmpty(htModel.ShopTicketName)) {
// req.HasShopping = true;
// req.ShoppingViewSpot = htModel.ShopTicketName;
//}
req.Itinerary.Routes = Routes.ToArray();
req.Itinerary.Routes = Routes.ToArray();
var payload = service.GetJson(req);
LogHelper.Write(payload);
var payload = service.GetJson(req);
LogHelper.Write(payload);
var response = service.ApplyContract(payload);
var response = service.ApplyContract(payload);
LogHelper.WriteInfo(JsonHelper.Serialize(response));
if (response.Error.Code == 0)
{
#region 更新合同
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
LogHelper.WriteInfo(JsonHelper.Serialize(response));
if (response.Error.Code == 0)
{
#region 更新合同
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Contract_Extend.ThirdContractID), response.Data.ContractNumber},
{ nameof(RB_Contract_Extend.ThirdContractSignUrl), response.Data.SigningURL},
{ nameof(RB_Contract_Extend.ThirdContractQRCode), response.Data.QRCodeURL},
{ nameof(RB_Contract_Extend.ThirdContractState), 1},
};
List<WhereHelper> wheres = new List<WhereHelper>() {
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName = nameof(RB_Contract_Extend.Id),
FiledValue = htModel.ID,
OperatorEnum = OperatorEnum.Equal
}
};
contractRepository.Update(keyValues, wheres);
#endregion
}
}
}
contractRepository.Update(keyValues, wheres);
#endregion
}
}
return flag;
}
/// <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