Commit 1dddae57 authored by liudong1993's avatar liudong1993

退款制单

parent ab623311
......@@ -29,6 +29,12 @@ namespace Mall.WindowsService.Helper
Module.FinanceModule.OrderIncomeFinanceModule();
LogHelper.Write("RevenueFinance=====End");
#region 退款制单
LogHelper.Write("AutoCreateFinanceRefund=====Start");
Module.FinanceModule.AutoCreateFinanceRefund();
LogHelper.Write("AutoCreateFinanceRefund=====End");
#endregion
Interlocked.Exchange(ref inTimer, 0);
}
}
......
......@@ -91,6 +91,10 @@ namespace Mall.WindowsService.Module
/// 订单明细
/// </summary>
private static RB_Goods_OrderDetailRepository goods_OrderDetailRepository = new RB_Goods_OrderDetailRepository();
/// <summary>
/// 售后订单流程
/// </summary>
private static RB_Goods_OrderAfterSaleLogRepository goods_OrderAfterSaleLogRepository = new RB_Goods_OrderAfterSaleLogRepository();
#region 收入
......@@ -981,16 +985,17 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
{
if (item.StartTime.HasValue && item.StartTime < System.DateTime.Now)//判断开始时间是否大于当前时间
{
//查询今天是否已经生成了财务单据
//查询最近是否已经生成了财务单据
var addFinance = false;
DateTime startDate = System.DateTime.Now.AddDays(-1);
var recordModel = financeRecordRepository.GetList(new RB_Finance_Record_Extend { TenantId = item.TenantId, MallBaseId = item.MallBaseId, Type = 3 }).OrderByDescending(x => x.CreateDate).FirstOrDefault();
if (recordModel == null)//今天没生成单据
if (recordModel == null)//没生成单据
{
if (Convert.ToDateTime(item.StartTime.Value.AddDays(item.IntervalDay ?? 0).ToString("yyyy-MM-dd 00:00:00")) <= Convert.ToDateTime(System.DateTime.Now.ToString("yyyy-MM-dd 00:00:00")))//判断开始时间加上执行周期是否等于当前日期
{
startDate = item.StartTime.Value;
//startDate = item.StartTime.Value;
startDate = Convert.ToDateTime("2020-07-01");
addFinance = true;
}
}
......@@ -1009,7 +1014,10 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
var olist = goods_OrderRepository.GetOrderRefunedCreateList(item.TenantId, item.MallBaseId, startDate.ToString("yyyy-MM-dd"), endDate.ToString("yyyy-MM-dd"));
//查询所有的售后退款
var afterlist = goods_OrderAfterSaleRepository.GetList(new RB_Goods_OrderAfterSale_Extend() { FStartTime = startDate.ToString("yyyy-MM-dd"), FEndTime = endDate.AddDays(-1).ToString("yyyy-MM-dd"), TenantId = item.TenantId, MallBaseId = item.MallBaseId, Type = 1, ReOrderStatus = OrderAfterSaleStatusEnum.Completed });
OrderRefundFinanceModule(olist, afterlist);
if (olist.Any() || afterlist.Any())
{
OrderRefundFinanceModule(olist, afterlist);
}
}
}
}
......@@ -1109,7 +1117,7 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
Number = 1,
OriginalMoney = Money,
UnitPrice = Money,
Remark = "订单号:" + omodel.OrderNo + "售后单号:" + (dmodel.ReOrderNo ?? "暂无") + " " + dstr
Remark = "订单号:" + omodel.OrderNo + " 售后单号:" + (dmodel.ReOrderNo ?? "暂无") + " " + dstr
}
);
......@@ -1168,10 +1176,68 @@ and DATE_FORMAT(b.PaymentTime,'%y-%m-%d')<DATE_FORMAT('{endDate}','%y-%m-%d') A
{
record.FinanceId = frid;
int recordId = financeRecordRepository.Insert(record);
Helper.LogHelper.Write("财务单据ID:" + frid + ",记录id:" + recordId + "订单数量:" + record.RecordDetailList.Count());
Helper.LogHelper.Write("退款单据ID:" + frid + ",记录id:" + recordId + "订单数量:" + record.RecordDetailList.Count());
record.RecordDetailList.ForEach(x => x.RecordId = recordId);
record.RecordDetailList.ForEach(x => x.FinanceId = frid);
flag = financeRecordDetailRepository.InsertBatch(record.RecordDetailList);
foreach (var omodel in oList) {
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Goods_Order_Extend.Remark), omodel.Remark +" 自动生成财务退款单据:"+ frid}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Goods_Order_Extend.OrderId),
FiledValue=omodel.OrderId,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Goods_Order_Extend.TenantId),
FiledValue=omodel.TenantId,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Goods_Order_Extend.MallBaseId),
FiledValue=omodel.MallBaseId,
OperatorEnum=OperatorEnum.Equal
}
};
goods_OrderRepository.Update(keyValues, wheres);
}
foreach (var dmodel in afterList) {
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Goods_OrderAfterSale.ReRemark), dmodel.ReRemark +" 自动生成财务退款单据:"+ frid},
{ nameof(RB_Goods_OrderAfterSale.FinanceId), frid},
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Goods_OrderAfterSale.ReOrderId),
FiledValue=dmodel.ReOrderId,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Goods_OrderAfterSale.TenantId),
FiledValue=dmodel.TenantId,
OperatorEnum=OperatorEnum.Equal
},
new WhereHelper(){
FiledName=nameof(RB_Goods_OrderAfterSale.MallBaseId),
FiledValue=dmodel.MallBaseId,
OperatorEnum=OperatorEnum.Equal
}
};
goods_OrderAfterSaleRepository.Update(keyValues, wheres);
goods_OrderAfterSaleLogRepository.Insert(new RB_Goods_OrderAfterSaleLog()
{
Id = 0,
Content = "自动生成财务退款单据:" + frid,
CreateDate = DateTime.Now,
MallBaseId = dmodel.MallBaseId,
ReOrderId = dmodel.ReOrderId,
TenantId = dmodel.TenantId,
Type = 2
});
}
}
Helper.LogHelper.Write(apiResult);
}
......
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