Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
Education
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄奎
Education
Commits
e88266c4
Commit
e88266c4
authored
Jul 21, 2021
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增单据类型
parent
8314e080
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
269 additions
and
3 deletions
+269
-3
Config.cs
Edu.Common/Config.cs
+11
-0
ReceiptTypeEnum.cs
Edu.Common/Enum/Finance/ReceiptTypeEnum.cs
+6
-0
EducationReceiptModule.cs
Edu.Module.EduTask/EducationReceiptModule.cs
+18
-1
OrderChangeModule.cs
Edu.Module.EduTask/OrderChangeModule.cs
+181
-1
RB_Education_ReceiptRepository.cs
Edu.Repository/EduTask/RB_Education_ReceiptRepository.cs
+9
-0
OrderChangeController.cs
Edu.WebApi/Controllers/EduTask/OrderChangeController.cs
+41
-0
appsettings.json
Edu.WebApi/appsettings.json
+3
-1
No files found.
Edu.Common/Config.cs
View file @
e88266c4
...
...
@@ -406,6 +406,17 @@ namespace Edu.Common
}
/// <summary>
/// 订单分拆流程编号
/// </summary>
public
static
int
OrderSplitClassFlowId
{
get
{
int
.
TryParse
(
ReadConfigKey
(
"OrderSplitClassFlowId"
),
out
int
OrderSplitClassFlowId
);
return
OrderSplitClassFlowId
;
}
}
/// <summary>
...
...
Edu.Common/Enum/Finance/ReceiptTypeEnum.cs
View file @
e88266c4
...
...
@@ -37,5 +37,11 @@ namespace Edu.Common.Enum.Finance
/// </summary>
[
EnumField
(
"订单转班"
)]
OrderTransClass
=
5
,
/// <summary>
/// 订单分拆
/// </summary>
[
EnumField
(
"订单分拆"
)]
OrderSplitClass
=
6
,
}
}
Edu.Module.EduTask/EducationReceiptModule.cs
View file @
e88266c4
...
...
@@ -319,6 +319,18 @@ namespace Edu.Module.EduTask
});
}
#
endregion
#
region
订单分拆
if
(
subItem
.
ReceiptType
==
Common
.
Enum
.
Finance
.
ReceiptTypeEnum
.
OrderSplitClass
)
{
string
transClassIds
=
string
.
Join
(
","
,
list
.
Where
(
qitem
=>
qitem
.
ReceiptType
==
subItem
.
ReceiptType
).
Select
(
qitem
=>
qitem
.
RelationId
));
orderTransList
=
order_ChangeRepository
.
GetOrderChangeListRepository
(
new
RB_Order_Change_ViewModel
()
{
QIds
=
transClassIds
,
ChangeType
=
2
,
});
}
#
endregion
}
foreach
(
var
item
in
list
)
...
...
@@ -401,7 +413,12 @@ namespace Edu.Module.EduTask
//订单转班
if
(
item
.
ReceiptType
==
Common
.
Enum
.
Finance
.
ReceiptTypeEnum
.
OrderTransClass
)
{
DataObj
=
orderTransList
?.
Where
(
qitem
=>
qitem
.
Id
==
item
.
RelationId
)?.
FirstOrDefault
();
DataObj
=
orderTransList
?.
Where
(
qitem
=>
qitem
.
Id
==
item
.
RelationId
&&
qitem
.
ChangeType
==
1
)?.
FirstOrDefault
();
}
//订单分拆
if
(
item
.
ReceiptType
==
Common
.
Enum
.
Finance
.
ReceiptTypeEnum
.
OrderSplitClass
)
{
DataObj
=
orderTransList
?.
Where
(
qitem
=>
qitem
.
Id
==
item
.
RelationId
&&
qitem
.
ChangeType
==
2
)?.
FirstOrDefault
();
}
object
AuditObj
=
new
object
();
if
(
item
.
VerifyStatus
==
EduTaskRrocessStatus
.
NotAudit
||
item
.
VerifyStatus
==
EduTaskRrocessStatus
.
AuditIng
)
...
...
Edu.Module.EduTask/OrderChangeModule.cs
View file @
e88266c4
...
...
@@ -84,7 +84,7 @@ namespace Edu.Module.EduTask
private
readonly
RB_Class_PlanRepository
class_PlanRepository
=
new
RB_Class_PlanRepository
();
/// <summary>
/// 新增订单转班
、分拆
/// 新增订单转班
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
...
...
@@ -480,5 +480,185 @@ namespace Edu.Module.EduTask
#
endregion
return
frid
;
}
#
region
分拆订单
/// <summary>
/// 新增订单拆分申请
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[
TransactionCallHandler
]
public
virtual
bool
SetOrderSplitModule
(
RB_Order_Change_ViewModel
model
,
out
string
message
)
{
message
=
""
;
bool
flag
=
false
;
var
newId
=
order_ChangeRepository
.
Insert
(
model
);
model
.
Id
=
newId
;
flag
=
newId
>
0
;
if
(
flag
)
{
var
educationReceipt
=
new
RB_Education_Receipt
()
{
Id
=
0
,
Title
=
"订单分拆申请"
,
ReceiptType
=
Common
.
Enum
.
Finance
.
ReceiptTypeEnum
.
OrderSplitClass
,
RelationId
=
newId
,
OrderId
=
model
.
SourceOrderId
,
ClassId
=
model
.
NewClassId
,
Group_Id
=
model
.
Group_Id
,
School_Id
=
model
.
School_Id
,
CreateBy
=
model
.
CreateBy
,
CreateTime
=
model
.
CreateTime
,
UpdateBy
=
model
.
UpdateBy
,
UpdateTime
=
model
.
UpdateTime
,
VerifyStatus
=
Common
.
Enum
.
EduTask
.
EduTaskRrocessStatus
.
NotAudit
,
IsCreate
=
0
,
EffectiveDate
=
model
.
EffectiveDate
};
flag
=
education_ReceiptRepository
.
SetEducationReceiptRepository
(
educationReceipt
,
out
message
);
Dictionary
<
string
,
object
>
guestFileds
=
new
Dictionary
<
string
,
object
>()
{
{
nameof
(
RB_Order_Guest_ViewModel
.
GuestState
),
8
}
};
if
(
flag
)
{
flag
=
guestRepository
.
Update
(
guestFileds
,
new
WhereHelper
(
nameof
(
RB_Order_Guest_ViewModel
.
Id
),
model
.
OrderGuestId
));
}
}
return
flag
;
}
/// <summary>
/// 订单分拆处理类方法
/// </summary>
/// <returns></returns>
public
bool
UpdateOrderSplitModule
(
RB_Education_Receipt
receiptModel
)
{
bool
flag
=
false
;
if
(
receiptModel
.
RelationId
>
0
)
{
var
orderChangeModel
=
order_ChangeRepository
.
GetEntity
<
RB_Order_Change_ViewModel
>(
receiptModel
.
RelationId
);
if
(
orderChangeModel
!=
null
&&
orderChangeModel
.
Id
>
0
)
{
if
(
orderChangeModel
.
EffectiveDate
<
DateTime
.
Now
)
{
return
false
;
}
var
oldOrderModel
=
orderRepository
.
GetEntity
(
orderChangeModel
.
SourceOrderId
);
var
newClassModel
=
classRepository
.
GetEntity
(
orderChangeModel
.
NewClassId
);
var
newCourseModel
=
courseRepository
.
GetEntity
(
orderChangeModel
.
NewCourseId
);
var
userInfo
=
UserReidsCache
.
GetUserLoginInfo
(
oldOrderModel
.
EnterID
);
var
guestClassHours
=
GetGuestFinishMinutesModule
(
orderChangeModel
.
OrderGuestId
.
ToString
());
var
guestModel
=
guestRepository
.
GetEntity
(
orderChangeModel
.
OrderGuestId
);
//计算课时单价
//老订单应收
//单个人员的课时单价
var
unitPrice
=
(
oldOrderModel
.
Income
+
oldOrderModel
.
PlatformTax
)
/
oldOrderModel
.
GuestNum
/
guestModel
.
TotalHours
;
//单人已完成应收
var
singleFinishPrice
=
Math
.
Round
(
guestClassHours
.
FinishClassHours
*
unitPrice
,
2
);
//单人应收
var
singlePreferPrice
=
Math
.
Round
(
guestModel
.
TotalHours
*
unitPrice
,
2
);
//原订单应收=原订单应收-单人应收+单人完成
decimal
oldPreferPrice
=
oldOrderModel
.
PreferPrice
-
singlePreferPrice
+
singleFinishPrice
;
//新订单应收和退款一致
decimal
newPreferPrice
=
singlePreferPrice
-
singleFinishPrice
;
#
region
生成新订单
var
orderModel
=
new
RB_Order_ViewModel
()
{
OrderId
=
0
,
ClassId
=
orderChangeModel
.
NewClassId
,
//班级编号
GuestNum
=
1
,
OrderSource
=
oldOrderModel
.
OrderSource
,
OrderType
=
oldOrderModel
.
OrderType
,
Class_Price
=
newCourseModel
.
SellPrice
,
//单价
Unit_Price
=
newCourseModel
.
SellPrice
,
//成交单价
PreferPrice
=
newPreferPrice
,
//应收,
Income
=
0
,
HelpEnterId
=
0
,
GeneralOccupation
=
""
,
EduOccupation
=
""
,
SaleRemark
=
orderChangeModel
.
Remarks
,
//销售备注
SourceId
=
0
,
IsLessPrice
=
0
,
LessPrice
=
0
,
OrderNature
=
oldOrderModel
.
OrderNature
,
OldPreferPrice
=
newPreferPrice
,
//应收,
CourseId
=
orderChangeModel
.
NewCourseId
,
StartClassHours
=
0
,
UpOrderId
=
0
,
VisitorReserveId
=
0
,
JoinType
=
Common
.
Enum
.
Sale
.
OrderJoinTypeEnum
.
TransOrder
,
TargetJoinType
=
Common
.
Enum
.
Sale
.
OrderJoinTypeEnum
.
Normal
,
EffectTime
=
orderChangeModel
.
EffectiveDate
,
};
orderModel
.
SourceOrderId
=
orderChangeModel
.
SourceOrderId
;
orderModel
.
Group_Id
=
userInfo
.
Group_Id
;
orderModel
.
School_Id
=
userInfo
.
School_Id
;
orderModel
.
Dept_Id
=
userInfo
.
DeptId
;
orderModel
.
OrderForm
=
OrderFormEnum
.
Computer
;
orderModel
.
EnterID
=
userInfo
.
Id
;
orderModel
.
OrderState
=
OrderStateEnum
.
Normal
;
orderModel
.
TradeWay
=
TradeWayEnum
.
OnLine
;
orderModel
.
CreateBy
=
userInfo
.
Id
;
orderModel
.
CreateTime
=
DateTime
.
Now
;
orderModel
.
UpdateBy
=
userInfo
.
Id
;
orderModel
.
UpdateTime
=
DateTime
.
Now
;
orderModel
.
OldGuestId
=
orderChangeModel
.
OrderGuestId
;
flag
=
orderModule
.
SetClassOrderCommonModule
(
orderModel
,
userInfo
,
false
,
out
string
message
);
#
endregion
if
(
flag
)
{
#
region
修改老订单
【目标订单和应收】
Dictionary
<
string
,
object
>
fileds
=
new
Dictionary
<
string
,
object
>()
{
{
nameof
(
RB_Order_ViewModel
.
TargetOrderId
),
orderModel
.
OrderId
},
{
nameof
(
RB_Order_ViewModel
.
PreferPrice
),
oldPreferPrice
},
{
nameof
(
RB_Order_ViewModel
.
TargetJoinType
),(
int
)
Common
.
Enum
.
Sale
.
OrderJoinTypeEnum
.
TransOrder
},
};
flag
=
orderRepository
.
Update
(
fileds
,
new
WhereHelper
(
nameof
(
RB_Order_ViewModel
.
OrderId
),
orderChangeModel
.
SourceOrderId
));
#
endregion
#
region
修改老学员课时相关
Dictionary
<
string
,
object
>
guestFileds
=
new
Dictionary
<
string
,
object
>()
{
{
nameof
(
RB_Order_Guest_ViewModel
.
TotalHours
),
guestClassHours
.
FinishClassHours
},
{
nameof
(
RB_Order_Guest_ViewModel
.
GuestState
),
7
},
};
if
(
flag
)
{
flag
=
guestRepository
.
Update
(
guestFileds
,
new
WhereHelper
(
nameof
(
RB_Order_Guest_ViewModel
.
Id
),
orderChangeModel
.
OrderGuestId
));
}
#
endregion
#
region
生成财务单据
if
(
flag
)
{
//var RelevanceFrId = CreateExpenditure(newPreferPrice, guestModel.Id, guestModel.GuestName, userInfo, oldOrderModel.ClassId, oldOrderModel.OrderId, out string msg1);
//var InCome = CreateInCome(newPreferPrice, orderModel.NewGuestId, guestModel.GuestName, userInfo, orderModel.ClassId, orderModel.OrderId, RelevanceFrId, out string msg2);
//flag = RelevanceFrId > 0 && InCome > 0;
}
#
endregion
}
if
(
flag
)
{
//Dictionary<string, object> fileds = new Dictionary<string, object>()
//{
// {nameof(RB_Education_Receipt.IsCreate),1}
//};
//flag = education_ReceiptRepository.Update(fileds, new WhereHelper(nameof(RB_Education_Receipt.Id), receiptModel.Id));
}
}
}
return
flag
;
}
#
endregion
}
}
Edu.Repository/EduTask/RB_Education_ReceiptRepository.cs
View file @
e88266c4
...
...
@@ -259,6 +259,15 @@ WHERE 1=1
return
false
;
}
}
else
if
(
model
.
ReceiptType
==
Common
.
Enum
.
Finance
.
ReceiptTypeEnum
.
OrderSplitClass
)
{
flowModel
=
flowRepository
.
GetFlowRepository
(
Common
.
Config
.
OrderSplitClassFlowId
);
if
(
flowModel
==
null
)
{
message
=
"未配置订单分拆流程!"
;
return
false
;
}
}
if
(
flowModel
?.
FlowNodeList
?.
Count
==
0
)
{
message
=
"未配置审核流程!"
;
...
...
Edu.WebApi/Controllers/EduTask/OrderChangeController.cs
View file @
e88266c4
...
...
@@ -106,5 +106,46 @@ namespace Edu.WebApi.Controllers.EduTask
bool
flag
=
orderChangeModule
.
SetOrderChangeModule
(
model
,
out
string
message
);
return
flag
?
ApiResult
.
Success
()
:
ApiResult
.
Failed
(
message
:
message
);
}
/// <summary>
/// 订单拆分申请
/// </summary>
/// <returns></returns>
[
HttpPost
]
public
ApiResult
SetOrderSplit
()
{
var
model
=
new
RB_Order_Change_ViewModel
()
{
Id
=
base
.
ParmJObj
.
GetInt
(
"Id"
),
SourceOrderId
=
base
.
ParmJObj
.
GetInt
(
"SourceOrderId"
),
ChangeType
=
base
.
ParmJObj
.
GetInt
(
"ChangeType"
),
NewClassId
=
base
.
ParmJObj
.
GetInt
(
"NewClassId"
),
NewCourseId
=
base
.
ParmJObj
.
GetInt
(
"NewCourseId"
),
EffectiveDate
=
base
.
ParmJObj
.
GetDateTime
(
"EffectiveDate"
),
Remarks
=
base
.
ParmJObj
.
GetStringValue
(
"Remarks"
),
OrderGuestId
=
base
.
ParmJObj
.
GetInt
(
"OrderGuestId"
),
OutTime
=
base
.
ParmJObj
.
GetDateTime
(
"OutTime"
),
};
var
oldOrderModel
=
orderModule
.
GetClassOrderInfoModule
(
model
.
SourceOrderId
);
if
(
oldOrderModel
==
null
)
{
return
ApiResult
.
ParamIsNull
(
message
:
"原订单号不存在!"
);
}
if
(
oldOrderModel
.
PreferPrice
!=
(
oldOrderModel
.
Income
+
oldOrderModel
.
PlatformTax
-
oldOrderModel
.
Refund
))
{
return
ApiResult
.
ParamIsNull
(
message
:
"原订单款未收齐,不能转班!"
);
}
var
classModel
=
classModule
.
GetClassModule
(
model
.
NewClassId
);
model
.
CreateBy
=
base
.
UserInfo
.
Id
;
model
.
CreateTime
=
DateTime
.
Now
;
model
.
Group_Id
=
base
.
UserInfo
.
Group_Id
;
model
.
School_Id
=
classModel
.
School_Id
;
model
.
UpdateBy
=
base
.
UserInfo
.
Id
;
model
.
UpdateTime
=
DateTime
.
Now
;
bool
flag
=
orderChangeModule
.
SetOrderSplitModule
(
model
,
out
string
message
);
return
flag
?
ApiResult
.
Success
()
:
ApiResult
.
Failed
(
message
:
message
);
}
}
}
Edu.WebApi/appsettings.json
View file @
e88266c4
...
...
@@ -87,5 +87,7 @@
//临时上课邀请流程编号
"TempInvitationClassFlowId"
:
4
,
//订单转班流程编号
"OrderTransClassFlowId"
:
5
"OrderTransClassFlowId"
:
5
,
//订单分拆流程编号
"OrderSplitClassFlowId"
:
6
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment