StudentFeeController.cs 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Mvc;
  6. using Bowin.Common.Data;
  7. using Bowin.Common.Utility;
  8. using Bowin.Web.Controls.Mvc;
  9. using EMIS.CommonLogic.FeeManage;
  10. using EMIS.CommonLogic.Students;
  11. using EMIS.Utility.FormValidate;
  12. using EMIS.ViewModel;
  13. using EMIS.ViewModel.FeeManage;
  14. using EMIS.Web.Controls;
  15. namespace EMIS.Web.Controllers.FeeManage
  16. {
  17. [Authorization]
  18. public class StudentFeeController : Controller
  19. {
  20. public IFeeServices FeeServices { get; set; }
  21. public IExamineApplyServices ExamineApplyService { get; set; }
  22. public ActionResult List()
  23. {
  24. ViewBag.SchoolYearID = BaseExtensions.GetCurrentSchoolYearID();
  25. return View();
  26. }
  27. public ActionResult Print()
  28. {
  29. return View();
  30. }
  31. public ActionResult PrintGDCX()
  32. {
  33. return View();
  34. }
  35. public ActionResult PrintDetail(string examinationRegistConfirmNo)
  36. {
  37. return View();
  38. }
  39. public ActionResult PrintDetailGDCX(string examinationRegistConfirmNo)
  40. {
  41. return View();
  42. }
  43. public ActionResult ReceiptSetting()
  44. {
  45. return View(FeeServices.GetReceiptView());
  46. }
  47. public ActionResult InvalidReceipt()
  48. {
  49. return View();
  50. }
  51. public ActionResult FinanceReport()
  52. {
  53. return View();
  54. }
  55. public ActionResult Refund(Guid examinationRegistrationID)
  56. {
  57. var user = CustomPrincipal.Current;
  58. var refundView = FeeServices.GetRefundView(examinationRegistrationID);
  59. if (!refundView.RefundUserID.HasValue)
  60. {
  61. refundView.RefundUserID = user.UserID;
  62. }
  63. if (refundView.RefundUserName == null)
  64. {
  65. refundView.RefundUserName = user.Name;
  66. }
  67. if (!refundView.RefundTime.HasValue)
  68. {
  69. refundView.RefundTime = DateTime.Today;
  70. }
  71. return View(refundView);
  72. }
  73. public ActionResult RefundConfirm(Guid examinationRegistrationID)
  74. {
  75. var refundView = FeeServices.GetRefundView(examinationRegistrationID);
  76. return View(refundView);
  77. }
  78. public ActionResult ClassStatisticList()
  79. {
  80. return View();
  81. }
  82. public ActionResult ProjectStatisticList()
  83. {
  84. return View();
  85. }
  86. [HttpPost]
  87. public ActionResult List(QueryParamsModel pararms)
  88. {
  89. ConfiguretView conditionView = ConfiguretExtensions.GetConfiguretermsView(pararms);
  90. var schoolyearID = pararms.getExtraGuid("ddlSchoolyear");
  91. var examinationBatchID = pararms.getExtraGuid("cgExaminationBatch");
  92. var examinationTypeID = pararms.getExtraGuid("cgExaminationType");
  93. var examinationProjectID = pararms.getExtraGuid("cgExaminationProject");
  94. var schoolAreaID = pararms.getExtraInt("ddlSchoolArea") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("ddlSchoolArea");
  95. var collegeID = pararms.getExtraGuid("ddlCollege");
  96. var yearID = pararms.getExtraInt("ddlYear") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("ddlYear");
  97. var classmajorID = pararms.getExtraGuid("cgbClassmajor");
  98. var recordStatus = pararms.getExtraInt("ddlRecordStatus") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("ddlRecordStatus");
  99. var isConfirm = pararms.getExtraInt("ddlIsConfirm") == DropdownList.SELECT_ALL ? null : (bool?)(pararms.getExtraInt("ddlIsConfirm") == (int)CF_GeneralPurpose.IsYes);
  100. var payWay = pararms.getExtraInt("ddlPayWay") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("ddlPayWay");
  101. var startDate = pararms.getExtraDateTime("StartDate");
  102. var endDate = pararms.getExtraDateTime("EndDate");
  103. var refundStartDate = pararms.getExtraDateTime("RefundStartDate");
  104. var refundEndDate = pararms.getExtraDateTime("RefundEndDate");
  105. return base.Json(FeeServices.GetStudentFeeViewGrid(conditionView, schoolyearID, examinationBatchID, examinationTypeID, examinationProjectID, schoolAreaID, collegeID,
  106. yearID, classmajorID, recordStatus, isConfirm, startDate, endDate, payWay, refundStartDate, refundEndDate, (int)pararms.page, (int)pararms.rows));
  107. }
  108. [HttpPost]
  109. public ActionResult ListSum(QueryParamsModel pararms)
  110. {
  111. ConfiguretView conditionView = ConfiguretExtensions.GetConfiguretermsView(pararms);
  112. var schoolyearID = pararms.getExtraGuid("ddlSchoolyear");
  113. var examinationBatchID = pararms.getExtraGuid("cgExaminationBatch");
  114. var examinationTypeID = pararms.getExtraGuid("cgExaminationType");
  115. var examinationProjectID = pararms.getExtraGuid("cgExaminationProject");
  116. var schoolAreaID = pararms.getExtraInt("ddlSchoolArea") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("ddlSchoolArea");
  117. var collegeID = pararms.getExtraGuid("ddlCollege");
  118. var yearID = pararms.getExtraInt("ddlYear") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("ddlYear");
  119. var classmajorID = pararms.getExtraGuid("cgbClassmajor");
  120. var recordStatus = pararms.getExtraInt("ddlRecordStatus") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("ddlRecordStatus");
  121. var isConfirm = pararms.getExtraInt("ddlIsConfirm") == DropdownList.SELECT_ALL ? null : (bool?)(pararms.getExtraInt("ddlIsConfirm") == (int)CF_GeneralPurpose.IsYes);
  122. var payWay = pararms.getExtraInt("ddlPayWay") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("ddlPayWay");
  123. var startDate = pararms.getExtraDateTime("StartDate");
  124. var endDate = pararms.getExtraDateTime("EndDate");
  125. var refundStartDate = pararms.getExtraDateTime("RefundStartDate");
  126. var refundEndDate = pararms.getExtraDateTime("RefundEndDate");
  127. return base.Json(FeeServices.GetStudentFeeViewListSum(conditionView, schoolyearID, examinationBatchID, examinationTypeID, examinationProjectID, schoolAreaID, collegeID,
  128. yearID, classmajorID, recordStatus, isConfirm, startDate, endDate, payWay, refundStartDate, refundEndDate));
  129. }
  130. /// <summary>
  131. /// Excel导出
  132. /// </summary>
  133. /// <param name="pararms"></param>
  134. /// <returns></returns>
  135. [HttpPost]
  136. public ActionResult Excel()
  137. {
  138. NpoiExcelHelper neh = new NpoiExcelHelper();
  139. ConfiguretView conditionView = ConfiguretExtensions.GetConfiguretermsView(null);
  140. var schoolyearID = Request.Form["ddlSchoolyear"].ParseStrTo<Guid>();
  141. var examinationBatchID = Request.Form["cgExaminationBatch"].ParseStrTo<Guid>();
  142. var examinationTypeID = Request.Form["cgExaminationType"].ParseStrTo<Guid>();
  143. var examinationProjectID = Request.Form["cgExaminationProject"].ParseStrTo<Guid>();
  144. var schoolAreaID = Request.Form["ddlSchoolArea"].ParseStrTo<int>() == DropdownList.SELECT_ALL ? null : Request.Form["ddlSchoolArea"].ParseStrTo<int>();
  145. var collegeID = Request.Form["ddlCollege"].ParseStrTo<Guid>();
  146. var yearID = Request.Form["ddlYear"].ParseStrTo<int>() == DropdownList.SELECT_ALL ? null : Request.Form["ddlYear"].ParseStrTo<int>();
  147. var classmajorID = Request.Form["ddlClassmajor"].ParseStrTo<Guid>();
  148. var recordStatus = Request.Form["ddlRecordStatus"].ParseStrTo<int>() == DropdownList.SELECT_ALL ? null : Request.Form["ddlRecordStatus"].ParseStrTo<int>();
  149. var isConfirm = Request.Form["ddlIsConfirm"].ParseStrTo<int>() == DropdownList.SELECT_ALL ? null : (bool?)(Request.Form["ddlIsConfirm"].ParseStrTo<int>() == (int)CF_GeneralPurpose.IsYes);
  150. var payWay = Request.Form["ddlPayWay"].ParseStrTo<int>() == DropdownList.SELECT_ALL ? null : Request.Form["ddlPayWay"].ParseStrTo<int>();
  151. var startDate = Request.Form["StartDate"].ParseStrTo<DateTime>();
  152. var endDate = Request.Form["EndDate"].ParseStrTo<DateTime>();
  153. var refundStartDate = Request.Form["RefundStartDate"].ParseStrTo<DateTime>();
  154. var refundEndDate = Request.Form["RefundEndDate"].ParseStrTo<DateTime>();
  155. var examinationRegistrationIDList = Request.Form["selectedIDs"].Split(',').Where(x => !string.IsNullOrEmpty(x)).Select(x => new Guid(x)).ToList();
  156. var dt = FeeServices.GetStudentFeeViewList(conditionView, schoolyearID, examinationBatchID, examinationTypeID, examinationProjectID, schoolAreaID, collegeID,
  157. yearID, classmajorID, recordStatus, isConfirm, startDate, endDate, payWay, refundStartDate, refundEndDate, examinationRegistrationIDList).Select(x => new
  158. {
  159. x.SchoolyearCode,
  160. x.ExaminationBatchName,
  161. x.ExaminationProjectName,
  162. x.SchoolAreaName,
  163. x.ClassmajorName,
  164. x.UserName,
  165. x.SexName,
  166. x.CertificatesTypeName,
  167. x.IDNumber,
  168. x.PhoneNumber,
  169. //x.StudentNo,
  170. x.FeeTypeName,
  171. Fee = x.Fee.HasValue ? x.Fee.Value.ToString("#0.00") : null,
  172. x.RecordStatusName,
  173. x.PayWayStr,
  174. PayTime = x.PayTime.HasValue ? x.PayTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
  175. x.BankName,
  176. x.CardNo,
  177. x.RefundUserName,
  178. x.RefundTimeStr,
  179. x.RefundConfirmUserName,
  180. x.RefundConfirmTimeStr,
  181. x.WechatOrderID,
  182. x.RefundOrderID,
  183. x.No,
  184. x.ReceiptNo,
  185. }).ToTable();
  186. string[] liststring = { "学年学期", "考试批次", "项目名称", "校区", "班级", "姓名",
  187. "性别", "证件类型", "证件号码", "联系电话","报名项目", "金额",
  188. "缴费状态", "缴费方式", "缴费时间", "开户行及支行",
  189. "银行卡号","退费经办老师","退费申请时间","退费确认老师","退费确认时间","微信订单号","微信退款单号", "确认单号", "收据号" };
  190. neh.Export(dt, liststring, "学生缴费信息" + DateTime.Now.ToString("yyyyMMdd"));
  191. return Json(new ReturnMessage()
  192. {
  193. IsSuccess = true,
  194. Message = "导出成功。"
  195. });
  196. }
  197. [HttpPost]
  198. public ActionResult ReceiptSetting(ReceiptView receiptView)
  199. {
  200. try
  201. {
  202. FeeServices.SaveReceiptView(receiptView);
  203. return Json(new ReturnMessage()
  204. {
  205. IsSuccess = true,
  206. Message = "保存成功。"
  207. });
  208. }
  209. catch (Exception ex)
  210. {
  211. return Json(new ReturnMessage()
  212. {
  213. IsSuccess = false,
  214. Message = "保存失败:" + ex.Message
  215. });
  216. }
  217. }
  218. [HttpPost]
  219. public ActionResult UnloadReceipt()
  220. {
  221. try
  222. {
  223. FeeServices.UnloadReceipt();
  224. return Json(new ReturnMessage()
  225. {
  226. IsSuccess = true,
  227. Message = "退出成功。"
  228. });
  229. }
  230. catch (Exception ex)
  231. {
  232. return Json(new ReturnMessage()
  233. {
  234. IsSuccess = false,
  235. Message = "退出失败:" + ex.Message
  236. });
  237. }
  238. }
  239. [HttpPost]
  240. public ActionResult InvalidReceipt(string receiptNo)
  241. {
  242. try
  243. {
  244. FeeServices.SaveInvalidReceipt(receiptNo);
  245. return Json(new ReturnMessage()
  246. {
  247. IsSuccess = true,
  248. Message = "保存成功。"
  249. });
  250. }
  251. catch (Exception ex)
  252. {
  253. return Json(new ReturnMessage()
  254. {
  255. IsSuccess = false,
  256. Message = "保存失败:" + ex.Message
  257. });
  258. }
  259. }
  260. [HttpPost]
  261. public ActionResult StudentFeeDetail(QueryParamsModel pararms)
  262. {
  263. ConfiguretView conditionView = ConfiguretExtensions.GetConfiguretermsView(pararms);
  264. var examinationRegistConfirmNo = pararms.getExtraString("txtConfirmNo");
  265. return base.Json(FeeServices.GetStudentFeeDetailViewGrid(conditionView, examinationRegistConfirmNo, (int)pararms.page, (int)pararms.rows));
  266. }
  267. [HttpPost]
  268. public ActionResult StudentFeeTotal(string examinationRegistConfirmNo)
  269. {
  270. return base.Json(FeeServices.GetStudentFeeDetailTotal(new ConfiguretView(), examinationRegistConfirmNo));
  271. }
  272. [HttpPost]
  273. public ActionResult PrintSaveGDCX(string examinationRegistConfirmNo)
  274. {
  275. try
  276. {
  277. var printView = FeeServices.PrintSaveGDCX(examinationRegistConfirmNo);
  278. if (printView != null)
  279. {
  280. printView.Operator = CustomPrincipal.Current.Name;
  281. return Json(new ReturnMessage<PrintGDCXView>()
  282. {
  283. IsSuccess = true,
  284. Data = printView
  285. });
  286. }
  287. else
  288. {
  289. return Json(new ReturnMessage()
  290. {
  291. IsSuccess = false,
  292. Message = "获取打印单号失败:查询更新后打印单信息失败。已消耗一张票据……"
  293. });
  294. }
  295. }
  296. catch (Exception ex)
  297. {
  298. return Json(new ReturnMessage()
  299. {
  300. IsSuccess = false,
  301. Message = "获取打印单号失败:" + ex.Message
  302. });
  303. }
  304. }
  305. [HttpPost]
  306. public ActionResult PrintSave(string examinationRegistConfirmNo)
  307. {
  308. try
  309. {
  310. var printView = FeeServices.PrintSave(examinationRegistConfirmNo);
  311. if (printView != null)
  312. {
  313. printView.Operator = CustomPrincipal.Current.Name;
  314. return Json(new ReturnMessage<PrintView>()
  315. {
  316. IsSuccess = true,
  317. Data = printView
  318. });
  319. }
  320. else
  321. {
  322. return Json(new ReturnMessage()
  323. {
  324. IsSuccess = false,
  325. Message = "获取打印单号失败:查询更新后打印单信息失败。已消耗一张票据……"
  326. });
  327. }
  328. }
  329. catch (Exception ex)
  330. {
  331. return Json(new ReturnMessage()
  332. {
  333. IsSuccess = false,
  334. Message = "获取打印单号失败:" + ex.Message
  335. });
  336. }
  337. }
  338. [HttpPost]
  339. public ActionResult Refund(RefundView refundView)
  340. {
  341. try
  342. {
  343. FeeServices.RefundOffline(refundView);
  344. return Json(new ReturnMessage()
  345. {
  346. IsSuccess = true,
  347. Message = "退款申请提交成功。"
  348. });
  349. }
  350. catch (Exception ex)
  351. {
  352. return Json(new ReturnMessage()
  353. {
  354. IsSuccess = false,
  355. Message = "退款申请提交失败:" + ex.Message
  356. });
  357. }
  358. }
  359. [HttpPost]
  360. public ActionResult RefundConfirmSave(Guid examinationRegistrationID)
  361. {
  362. try
  363. {
  364. FeeServices.RefundConfirm(examinationRegistrationID);
  365. return Json(new ReturnMessage()
  366. {
  367. IsSuccess = true,
  368. Message = "退款确认成功。"
  369. });
  370. }
  371. catch (Exception ex)
  372. {
  373. return Json(new ReturnMessage()
  374. {
  375. IsSuccess = false,
  376. Message = "退款确认失败:" + ex.Message
  377. });
  378. }
  379. }
  380. [HttpPost]
  381. public ActionResult ClassStatisticList(QueryParamsModel pararms)
  382. {
  383. ConfiguretView conditionView = ConfiguretExtensions.GetConfiguretermsView(pararms);
  384. var schoolyearID = pararms.getExtraGuid("ddlSchoolyear");
  385. var examinationBatchID = pararms.getExtraGuid("cgExaminationBatch");
  386. var examinationTypeID = pararms.getExtraGuid("cgExaminationType");
  387. var examinationProjectID = pararms.getExtraGuid("cgExaminationProject");
  388. var collegeID = pararms.getExtraGuid("ddlCollege");
  389. var yearID = pararms.getExtraInt("ddlYear") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("ddlYear");
  390. var standardID = pararms.getExtraInt("cgbStandard") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("cgbStandard");
  391. var classmajorID = pararms.getExtraGuid("cgbClassmajor");
  392. return base.Json(FeeServices.GetStudentFeeClassStatisticViewGrid(conditionView, schoolyearID, examinationBatchID, examinationTypeID, examinationProjectID,
  393. collegeID, yearID, standardID, classmajorID, pararms.page, pararms.rows));
  394. }
  395. [HttpPost]
  396. public ActionResult ClassStatisticTotal(QueryParamsModel pararms)
  397. {
  398. ConfiguretView conditionView = ConfiguretExtensions.GetConfiguretermsView(pararms);
  399. var schoolyearID = pararms.getExtraGuid("ddlSchoolyear");
  400. var examinationBatchID = pararms.getExtraGuid("cgExaminationBatch");
  401. var examinationTypeID = pararms.getExtraGuid("cgExaminationType");
  402. var examinationProjectID = pararms.getExtraGuid("cgExaminationProject");
  403. var collegeID = pararms.getExtraGuid("ddlCollege");
  404. var yearID = pararms.getExtraInt("ddlYear") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("ddlYear");
  405. var standardID = pararms.getExtraInt("cgbStandard") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("cgbStandard");
  406. var classmajorID = pararms.getExtraGuid("cgbClassmajor");
  407. return base.Json(FeeServices.GetStudentFeeClassStatisticViewTotal(conditionView, schoolyearID, examinationBatchID, examinationTypeID, examinationProjectID,
  408. collegeID, yearID, standardID, classmajorID));
  409. }
  410. [HttpPost]
  411. public ActionResult ProjectStatisticList(QueryParamsModel pararms)
  412. {
  413. ConfiguretView conditionView = ConfiguretExtensions.GetConfiguretermsView(pararms);
  414. var schoolyearID = pararms.getExtraGuid("ddlSchoolyear");
  415. var examinationBatchID = pararms.getExtraGuid("cgExaminationBatch");
  416. var examinationTypeID = pararms.getExtraGuid("cgExaminationType");
  417. var examinationProjectID = pararms.getExtraGuid("cgExaminationProject");
  418. var schoolAreaID = pararms.getExtraInt("ddlSchoolArea") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("ddlSchoolArea");
  419. var collegeID = pararms.getExtraGuid("ddlCollege");
  420. var yearID = pararms.getExtraInt("ddlYear") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("ddlYear");
  421. var standardID = pararms.getExtraInt("cgbStandard") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("cgbStandard");
  422. var classmajorID = pararms.getExtraGuid("cgbClassmajor");
  423. var startDate = pararms.getExtraDateTime("StartDate");
  424. var endDate = pararms.getExtraDateTime("EndDate");
  425. return base.Json(FeeServices.GetStudentFeeProjectStatisticViewGrid(conditionView, schoolyearID, examinationBatchID, examinationTypeID, examinationProjectID,
  426. schoolAreaID, collegeID, yearID, standardID, classmajorID, startDate, endDate, pararms.page, pararms.rows));
  427. }
  428. [HttpPost]
  429. public ActionResult ProjectStatisticTotal(QueryParamsModel pararms)
  430. {
  431. ConfiguretView conditionView = ConfiguretExtensions.GetConfiguretermsView(pararms);
  432. var schoolyearID = pararms.getExtraGuid("ddlSchoolyear");
  433. var examinationBatchID = pararms.getExtraGuid("cgExaminationBatch");
  434. var examinationTypeID = pararms.getExtraGuid("cgExaminationType");
  435. var examinationProjectID = pararms.getExtraGuid("cgExaminationProject");
  436. var schoolAreaID = pararms.getExtraInt("ddlSchoolArea") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("ddlSchoolArea");
  437. var collegeID = pararms.getExtraGuid("ddlCollege");
  438. var yearID = pararms.getExtraInt("ddlYear") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("ddlYear");
  439. var standardID = pararms.getExtraInt("cgbStandard") == DropdownList.SELECT_ALL ? null : pararms.getExtraInt("cgbStandard");
  440. var classmajorID = pararms.getExtraGuid("cgbClassmajor");
  441. var startDate = pararms.getExtraDateTime("StartDate");
  442. var endDate = pararms.getExtraDateTime("EndDate");
  443. return base.Json(FeeServices.GetStudentFeeProjectStatisticViewTotal(conditionView, schoolyearID, examinationBatchID, examinationTypeID, examinationProjectID,
  444. schoolAreaID, collegeID, yearID, standardID, classmajorID, startDate, endDate));
  445. }
  446. /// <summary>
  447. /// Excel导出
  448. /// </summary>
  449. /// <param name="pararms"></param>
  450. /// <returns></returns>
  451. [HttpPost]
  452. public ActionResult ClassStatisticExcel()
  453. {
  454. NpoiExcelHelper neh = new NpoiExcelHelper();
  455. ConfiguretView conditionView = ConfiguretExtensions.GetConfiguretermsView(null);
  456. var schoolyearID = Request.Form["ddlSchoolyear"].ParseStrTo<Guid>();
  457. var examinationBatchID = Request.Form["cgExaminationBatch"].ParseStrTo<Guid>();
  458. var examinationTypeID = Request.Form["cgExaminationType"].ParseStrTo<Guid>();
  459. var examinationProjectID = Request.Form["cgExaminationProject"].ParseStrTo<Guid>();
  460. var collegeID = Request.Form["ddlCollege"].ParseStrTo<Guid>();
  461. var yearID = Request.Form["ddlYear"].ParseStrTo<int>() == DropdownList.SELECT_ALL ? null : Request.Form["ddlYear"].ParseStrTo<int>();
  462. var standardID = Request.Form["cgbStandard"].ParseStrTo<int>() == DropdownList.SELECT_ALL ? null : Request.Form["cgbStandard"].ParseStrTo<int>();
  463. var classmajorID = Request.Form["cgbClassmajor"].ParseStrTo<Guid>();
  464. var statisticList = FeeServices.GetStudentFeeClassStatisticViewList(conditionView, schoolyearID, examinationBatchID, examinationTypeID, examinationProjectID,
  465. collegeID, yearID, standardID, classmajorID).Select(x => new
  466. {
  467. x.Year,
  468. x.CollegeName,
  469. x.ClassmajorName,
  470. x.ExaminationTypeName,
  471. x.ExaminationProjectName,
  472. x.FeeTypeName,
  473. x.TotalRegistCount,
  474. TotalRegistAmount = x.TotalRegistAmount.HasValue ? x.TotalRegistAmount.Value.ToString("#0.00") : null,
  475. x.TotalPaidCount,
  476. TotalPaidAmount = x.TotalPaidAmount.HasValue ? x.TotalPaidAmount.Value.ToString("#0.00") : null,
  477. x.TotalRefundCount,
  478. TotalRefundAmount = x.TotalRefundAmount.HasValue ? x.TotalRefundAmount.Value.ToString("#0.00") : null,
  479. x.TotalRefundApplyCount,
  480. TotalRefundApplyAmount = x.TotalRefundApplyAmount.HasValue ? x.TotalRefundApplyAmount.Value.ToString("#0.00") : null,
  481. x.TotalRefundingCount,
  482. TotalRefundingAmount = x.TotalRefundingAmount.HasValue ? x.TotalRefundingAmount.Value.ToString("#0.00") : null
  483. }).ToList();
  484. var statisticTotal = FeeServices.GetStudentFeeClassStatisticViewTotal(conditionView, schoolyearID, examinationBatchID, examinationTypeID, examinationProjectID,
  485. collegeID, yearID, standardID, classmajorID);
  486. statisticList.Add(new
  487. {
  488. Year = (int?)null,
  489. CollegeName = "",
  490. ClassmajorName = "",
  491. ExaminationTypeName = "",
  492. ExaminationProjectName = "",
  493. FeeTypeName = "",
  494. TotalRegistCount = statisticTotal.TotalRegistCount,
  495. TotalRegistAmount = statisticTotal.TotalRegistAmount.HasValue ? statisticTotal.TotalRegistAmount.Value.ToString("#0.00") : null,
  496. TotalPaidCount = statisticTotal.TotalPaidCount,
  497. TotalPaidAmount = statisticTotal.TotalPaidAmount.HasValue ? statisticTotal.TotalPaidAmount.Value.ToString("#0.00") : null,
  498. TotalRefundCount = statisticTotal.TotalRefundCount,
  499. TotalRefundAmount = statisticTotal.TotalRefundAmount.HasValue ? statisticTotal.TotalRefundAmount.Value.ToString("#0.00") : null,
  500. TotalRefundApplyCount = statisticTotal.TotalRefundApplyCount,
  501. TotalRefundApplyAmount = statisticTotal.TotalRefundApplyAmount.HasValue ? statisticTotal.TotalRefundApplyAmount.Value.ToString("#0.00") : null,
  502. TotalRefundingCount = statisticTotal.TotalRefundingCount,
  503. TotalRefundingAmount = statisticTotal.TotalRefundingAmount.HasValue ? statisticTotal.TotalRefundingAmount.Value.ToString("#0.00") : null,
  504. });
  505. var dt = statisticList.ToTable();
  506. string[] liststring = { "年级", "院/系/部", "班级", "考试类型",
  507. "考试项目", "报名项目(费用)", "报名人数", "总金额", "已交费人数",
  508. "已交费金额", "已退费人数", "已退费金额" };
  509. neh.Export(dt, liststring, "按班级项目等级汇总" + DateTime.Now.ToString("yyyyMMdd"));
  510. return Json(new ReturnMessage()
  511. {
  512. IsSuccess = true,
  513. Message = "导出成功。"
  514. });
  515. }
  516. /// <summary>
  517. /// Excel导出
  518. /// </summary>
  519. /// <param name="pararms"></param>
  520. /// <returns></returns>
  521. [HttpPost]
  522. public ActionResult ProjectStatisticExcel()
  523. {
  524. NpoiExcelHelper neh = new NpoiExcelHelper();
  525. ConfiguretView conditionView = ConfiguretExtensions.GetConfiguretermsView(null);
  526. var schoolyearID = Request.Form["ddlSchoolyear"].ParseStrTo<Guid>();
  527. var examinationBatchID = Request.Form["cgExaminationBatch"].ParseStrTo<Guid>();
  528. var examinationTypeID = Request.Form["cgExaminationType"].ParseStrTo<Guid>();
  529. var examinationProjectID = Request.Form["cgExaminationProject"].ParseStrTo<Guid>();
  530. var schoolAreaID = Request.Form["ddlSchoolArea"].ParseStrTo<int>() == DropdownList.SELECT_ALL ? null : Request.Form["ddlSchoolArea"].ParseStrTo<int>();
  531. var collegeID = Request.Form["ddlCollege"].ParseStrTo<Guid>();
  532. var yearID = Request.Form["ddlYear"].ParseStrTo<int>() == DropdownList.SELECT_ALL ? null : Request.Form["ddlYear"].ParseStrTo<int>();
  533. var standardID = Request.Form["cgbStandard"].ParseStrTo<int>() == DropdownList.SELECT_ALL ? null : Request.Form["cgbStandard"].ParseStrTo<int>();
  534. var classmajorID = Request.Form["cgbClassmajor"].ParseStrTo<Guid>();
  535. var startDate = Request.Form["StartDate"].ParseStrTo<DateTime>();
  536. var endDate = Request.Form["EndDate"].ParseStrTo<DateTime>();
  537. var statisticList = FeeServices.GetStudentFeeProjectStatisticViewList(conditionView, schoolyearID, examinationBatchID, examinationTypeID, examinationProjectID,
  538. schoolAreaID, collegeID, yearID, standardID, classmajorID, startDate, endDate).Select(x => new
  539. {
  540. x.ExaminationBatchName,
  541. x.ExaminationTypeName,
  542. x.ExaminationProjectName,
  543. x.FeeTypeName,
  544. x.TotalRegistCount,
  545. TotalRegistAmount = x.TotalRegistAmount.HasValue ? x.TotalRegistAmount.Value.ToString("#0.00") : null,
  546. x.TotalPaidCount,
  547. TotalPaidAmount = x.TotalPaidAmount.HasValue ? x.TotalPaidAmount.Value.ToString("#0.00") : null,
  548. x.TotalRefundCount,
  549. TotalRefundAmount = x.TotalRefundAmount.HasValue ? x.TotalRefundAmount.Value.ToString("#0.00") : null,
  550. x.TotalRefundApplyCount,
  551. TotalRefundApplyAmount = x.TotalRefundApplyAmount.HasValue ? x.TotalRefundApplyAmount.Value.ToString("#0.00") : null,
  552. x.TotalRefundingCount,
  553. TotalRefundingAmount = x.TotalRefundingAmount.HasValue ? x.TotalRefundingAmount.Value.ToString("#0.00") : null
  554. }).ToList();
  555. var statisticTotal = FeeServices.GetStudentFeeProjectStatisticViewTotal(conditionView, schoolyearID, examinationBatchID, examinationTypeID, examinationProjectID,
  556. schoolAreaID, collegeID, yearID, standardID, classmajorID, startDate, endDate);
  557. statisticList.Add(new
  558. {
  559. ExaminationBatchName = "",
  560. ExaminationTypeName = "",
  561. ExaminationProjectName = "",
  562. FeeTypeName = "",
  563. TotalRegistCount = statisticTotal.TotalRegistCount,
  564. TotalRegistAmount = statisticTotal.TotalRegistAmount.HasValue ? statisticTotal.TotalRegistAmount.Value.ToString("#0.00") : null,
  565. TotalPaidCount = statisticTotal.TotalPaidCount,
  566. TotalPaidAmount = statisticTotal.TotalPaidAmount.HasValue ? statisticTotal.TotalPaidAmount.Value.ToString("#0.00") : null,
  567. TotalRefundCount = statisticTotal.TotalRefundCount,
  568. TotalRefundAmount = statisticTotal.TotalRefundAmount.HasValue ? statisticTotal.TotalRefundAmount.Value.ToString("#0.00") : null,
  569. TotalRefundApplyCount = statisticTotal.TotalRefundApplyCount,
  570. TotalRefundApplyAmount = statisticTotal.TotalRefundApplyAmount.HasValue ? statisticTotal.TotalRefundApplyAmount.Value.ToString("#0.00") : null,
  571. TotalRefundingCount = statisticTotal.TotalRefundingCount,
  572. TotalRefundingAmount = statisticTotal.TotalRefundingAmount.HasValue ? statisticTotal.TotalRefundingAmount.Value.ToString("#0.00") : null,
  573. });
  574. var dt = statisticList.ToTable();
  575. string[] liststring = { "报名批次", "考试类型", "考试项目", "报名费用", "报名人数", "总金额", "已交费人数", "已交费金额", "已退费人数", "已退费金额", "退费申请人数", "退费申请金额", "待退费人数", "待退费金额" };
  576. neh.Export(dt, liststring, "按项目汇总" + DateTime.Now.ToString("yyyyMMdd"));
  577. return Json(new ReturnMessage()
  578. {
  579. IsSuccess = true,
  580. Message = "导出成功。"
  581. });
  582. }
  583. [HttpPost]
  584. public ActionResult FinanceReport(QueryParamsModel pararms)
  585. {
  586. ConfiguretView conditionView = ConfiguretExtensions.GetConfiguretermsView(pararms);
  587. var schoolyearID = pararms.getExtraGuid("ddlSchoolyear");
  588. var payTimeStart = pararms.getExtraDateTime("txtPayTimeStart");
  589. var payTimeEnd = pararms.getExtraDateTime("txtPayTimeEnd");
  590. var examinationProjectID = pararms.getExtraGuid("ddlExaminationProject");
  591. var receiver = pararms.getExtraGuid("cgbReceiver");
  592. return base.Json(FeeServices.GetFinanceReportViewGrid(conditionView, schoolyearID, payTimeStart, payTimeEnd, examinationProjectID, receiver, pararms.page, pararms.rows));
  593. }
  594. [HttpPost]
  595. public ActionResult FinanceReportTotal(QueryParamsModel pararms)
  596. {
  597. ConfiguretView conditionView = ConfiguretExtensions.GetConfiguretermsView(pararms);
  598. var schoolyearID = pararms.getExtraGuid("ddlSchoolyear");
  599. var payTimeStart = pararms.getExtraDateTime("txtPayTimeStart");
  600. var payTimeEnd = pararms.getExtraDateTime("txtPayTimeEnd");
  601. var examinationProjectID = pararms.getExtraGuid("ddlExaminationProject");
  602. var receiver = pararms.getExtraGuid("cgbReceiver");
  603. return Json(FeeServices.GetFinanceReportViewTotal(conditionView, schoolyearID, payTimeStart, payTimeEnd, examinationProjectID, receiver));
  604. }
  605. /// <summary>
  606. /// Excel导出
  607. /// </summary>
  608. /// <param name="pararms"></param>
  609. /// <returns></returns>
  610. [HttpPost]
  611. public ActionResult FinanceReportExcel()
  612. {
  613. NpoiExcelHelper neh = new NpoiExcelHelper();
  614. ConfiguretView conditionView = ConfiguretExtensions.GetConfiguretermsView(null);
  615. var schoolyearID = Request.Form["ddlSchoolyear"].ParseStrTo<Guid>();
  616. var payTimeStart = Request.Form["txtPayTimeStart"].ParseStrTo<DateTime>();
  617. var payTimeEnd = Request.Form["txtPayTimeEnd"].ParseStrTo<DateTime>();
  618. var examinationProjectID = Request.Form["ddlExaminationProject"].ParseStrTo<Guid>();
  619. var receiver = Request.Form["cgbReceiver"].ParseStrTo<Guid>();
  620. var financeList = FeeServices.GetFinanceReportViewList(conditionView, schoolyearID, payTimeStart, payTimeEnd, examinationProjectID, receiver)
  621. .Select(x => new
  622. {
  623. x.ReceiptNo,
  624. PayTime = x.PayTime.HasValue ? x.PayTime.Value.ToString("yyyy-MM-dd") : "",
  625. x.ClassmajorName,
  626. x.ExaminationRegistrationConfirmNo,
  627. x.ExaminationProjectName,
  628. x.FeeTypeName,
  629. x.StudentCount,
  630. x.AmountString,
  631. x.ReceiverName
  632. }).ToList();
  633. var dt = financeList.ToTable();
  634. string[] liststring = { "收据号", "收费日期", "班级", "确认单号", "项目", "收费标准", "人数", "金额", "开票人" };
  635. neh.Export(dt, liststring, "按项目汇总" + DateTime.Now.ToString("yyyyMMdd"));
  636. return Json(new ReturnMessage()
  637. {
  638. IsSuccess = true,
  639. Message = "导出成功。"
  640. });
  641. }
  642. [HttpGet]
  643. public ActionResult RefundApprove(string examinationRegistrationIDs)
  644. {
  645. //var examinationRegistrationIDList = examinationRegistrationIDs.Split(',').Where(x => x.IndexOf("-") >= 0).Select(x => new Guid(x)).ToList();
  646. //var registrationList = ExamineApplyService.GetExaminationRegistrationPayViewByRegistrationID(examinationRegistrationIDList);
  647. //if (registrationList.Where(x => x.RecordStatus != (int)EX_ExaminationRegistrationStatus.RefundApply).Count() > 0)
  648. //{
  649. // return base.Json("只能对缴费状态是“退费申请”的数据进行审核");
  650. //}
  651. RefundApproveView refundApproveView = new RefundApproveView();
  652. refundApproveView.ExaminationRegistrationIDs = examinationRegistrationIDs;
  653. return View(refundApproveView);
  654. }
  655. public ActionResult RefundApprove(RefundApproveView refundApproveView)
  656. {
  657. try
  658. {
  659. FeeServices.ApproveRefund(refundApproveView);
  660. return RedirectToAction("MsgShow", "Common", new
  661. {
  662. WindowID = Request["WindowID"],
  663. msg = "退费审核成功!",
  664. url = Url.Action("List").AddMenuParameter()
  665. });
  666. }
  667. catch (Exception ex)
  668. {
  669. return RedirectToAction("MsgShow", "Common", new
  670. {
  671. WindowID = Request["WindowID"],
  672. msg = "退费审核失败,原因:" + ex.Message,
  673. url = Url.Action("List").AddMenuParameter()
  674. });
  675. }
  676. }
  677. }
  678. }