You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

271 lines
11 KiB

  1. using Learun.Util;
  2. using System.Data;
  3. using Learun.Application.TwoDevelopment.AssetManagementSystem;
  4. using System.Web.Mvc;
  5. using System.Collections.Generic;
  6. using System;
  7. namespace Learun.Application.Web.Areas.AssetManagementSystem.Controllers
  8. {
  9. /// <summary>
  10. /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园
  11. /// Copyright (c) 2013-2018 北京泉江科技有限公司
  12. /// 创 建:超级管理员
  13. /// 日 期:2019-03-29 10:33
  14. /// 描 述:采购
  15. /// </summary>
  16. public class Ass_PurchaseController : MvcControllerBase
  17. {
  18. private Ass_PurchaseIBLL ass_PurchaseIBLL = new Ass_PurchaseBLL();
  19. private Ass_PurchaseApplyIBLL ass_PurchaseApplyIBLL = new Ass_PurchaseApplyBLL();
  20. private Ass_PurchaseItemApplyIBLL ass_PurchaseItemApplyIBLL = new Ass_PurchaseItemApplyBLL();
  21. private Ass_AssetsInfoApplyIBLL ass_AssetsInfoApplyIBLL = new Ass_AssetsInfoApplyBLL();
  22. #region 视图功能
  23. /// <summary>
  24. /// 主页面
  25. /// <summary>
  26. /// <returns></returns>
  27. [HttpGet]
  28. public ActionResult Index()
  29. {
  30. return View();
  31. }
  32. /// <summary>
  33. /// 表单页
  34. /// <summary>
  35. /// <returns></returns>
  36. [HttpGet]
  37. public ActionResult Form()
  38. {
  39. return View();
  40. }
  41. /// <summary>
  42. /// 开始采购表单页
  43. /// </summary>
  44. /// <returns></returns>
  45. [HttpGet]
  46. public ActionResult StartForm()
  47. {
  48. return View();
  49. }
  50. /// <summary>
  51. /// 查看完成表单页
  52. /// <summary>
  53. /// <returns></returns>
  54. [HttpGet]
  55. public ActionResult FormView()
  56. {
  57. return View();
  58. }
  59. #endregion
  60. #region 获取数据
  61. /// <summary>
  62. /// 获取页面显示列表数据
  63. /// <summary>
  64. /// <param name="queryJson">查询参数</param>
  65. /// <returns></returns>
  66. [HttpGet]
  67. [AjaxOnly]
  68. public ActionResult GetPageList(string pagination, string queryJson)
  69. {
  70. Pagination paginationobj = pagination.ToObject<Pagination>();
  71. var data = ass_PurchaseIBLL.GetPageList(paginationobj, queryJson);
  72. var jsonData = new
  73. {
  74. rows = data,
  75. total = paginationobj.total,
  76. page = paginationobj.page,
  77. records = paginationobj.records
  78. };
  79. return Success(jsonData);
  80. }
  81. /// <summary>
  82. /// 获取表单数据
  83. /// <summary>
  84. /// <returns></returns>
  85. [HttpGet]
  86. [AjaxOnly]
  87. public ActionResult GetFormData(string keyValue)
  88. {
  89. var Ass_PurchaseData = ass_PurchaseIBLL.GetAss_PurchaseEntity(keyValue);
  90. var Ass_PurchaseItemData = ass_PurchaseIBLL.GetAss_PurchaseItemList(Ass_PurchaseData.PId);
  91. //采购单-获取采购申请流水号
  92. var Ass_PurchaseApplyData = ass_PurchaseApplyIBLL.GetAss_PurchaseApplyEntity(Ass_PurchaseData.PAId);
  93. if (Ass_PurchaseApplyData != null)
  94. {
  95. Ass_PurchaseData.PACode = Ass_PurchaseApplyData.PACode;
  96. }
  97. //采购明细列表-获取采购申请明细
  98. foreach (var item in Ass_PurchaseItemData)
  99. {
  100. var Ass_PurchaseItemApplyData = ass_PurchaseItemApplyIBLL.GetAss_PurchaseItemApplyEntity(item.PAIId);
  101. if (Ass_PurchaseItemApplyData != null)
  102. {
  103. item.PAIName = Ass_PurchaseItemApplyData.PAIName;
  104. item.PAIEName = Ass_PurchaseItemApplyData.PAIEName;
  105. item.PAITId = Ass_PurchaseItemApplyData.PAITId;
  106. }
  107. }
  108. var jsonData = new
  109. {
  110. Ass_Purchase = Ass_PurchaseData,
  111. Ass_PurchaseItem = Ass_PurchaseItemData,
  112. };
  113. return Success(jsonData);
  114. }
  115. /// <summary>
  116. /// 获取表单数据
  117. /// <summary>
  118. /// <returns></returns>
  119. [HttpGet]
  120. [AjaxOnly]
  121. public ActionResult GetFormDataByProcessId(string processId)
  122. {
  123. var Ass_PurchaseData = ass_PurchaseIBLL.GetEntityByProcessId(processId);
  124. var Ass_PurchaseItemData = ass_PurchaseIBLL.GetAss_PurchaseItemList(Ass_PurchaseData.PId);
  125. var jsonData = new
  126. {
  127. Ass_Purchase = Ass_PurchaseData,
  128. Ass_PurchaseItem = Ass_PurchaseItemData,
  129. };
  130. return Success(jsonData);
  131. }
  132. #endregion
  133. #region 提交数据
  134. /// <summary>
  135. /// 删除实体数据
  136. /// <param name="keyValue">主键</param>
  137. /// <summary>
  138. /// <returns></returns>
  139. [HttpPost]
  140. [AjaxOnly]
  141. public ActionResult DeleteForm(string keyValue)
  142. {
  143. ass_PurchaseIBLL.DeleteEntity(keyValue);
  144. return Success("删除成功!");
  145. }
  146. /// <summary>
  147. /// 保存实体数据(新增、修改)
  148. /// <param name="keyValue">主键</param>
  149. /// <summary>
  150. /// <returns></returns>
  151. [HttpPost]
  152. [ValidateAntiForgeryToken]
  153. [AjaxOnly]
  154. public ActionResult SaveForm(string keyValue, string strEntity, string strass_PurchaseItemList)
  155. {
  156. Ass_PurchaseEntity entity = strEntity.ToObject<Ass_PurchaseEntity>();
  157. entity.PStatus = 2;
  158. List<Ass_PurchaseItemEntity> ass_PurchaseItemList = strass_PurchaseItemList.ToObject<List<Ass_PurchaseItemEntity>>();
  159. ass_PurchaseIBLL.SaveEntity(keyValue, entity, ass_PurchaseItemList);
  160. //修改采购申请表的采购状态
  161. var ass_PurchaseData = ass_PurchaseIBLL.GetAss_PurchaseEntity(keyValue);
  162. if (ass_PurchaseData != null)
  163. {
  164. if (!string.IsNullOrEmpty(ass_PurchaseData.PAId))
  165. {
  166. var ass_PurchaseApplyEntity = ass_PurchaseApplyIBLL.GetAss_PurchaseApplyEntity(ass_PurchaseData.PAId);
  167. ass_PurchaseApplyEntity.PStatus = 2;
  168. ass_PurchaseApplyIBLL.SaveAss_PurchaseApplyEntity(ass_PurchaseApplyEntity.PAId, ass_PurchaseApplyEntity);
  169. }
  170. }
  171. //添加入库申请表数据、入库申请明细表数据
  172. var ass_AssetsInfoApplyEntity = new Ass_AssetsInfoApplyEntity();
  173. ass_AssetsInfoApplyEntity.AACode = "RKSQ_" + CommonHelper.CreateNo();
  174. ass_AssetsInfoApplyEntity.AAPrice = 0;
  175. ass_AssetsInfoApplyEntity.AACreateTime = DateTime.Now;
  176. ass_AssetsInfoApplyEntity.PId = keyValue;
  177. ass_AssetsInfoApplyEntity.AAStatus = 0;
  178. ass_AssetsInfoApplyEntity.AAAssType = ass_PurchaseData.PAssType;
  179. ass_AssetsInfoApplyEntity.AACreateUserId = entity.PUserId;
  180. decimal aaprice = 0m;
  181. var ass_AssetsInfoItemApplyList = new List<Ass_AssetsInfoItemApplyEntity>();
  182. var ass_PurchaseItemData = ass_PurchaseIBLL.GetAss_PurchaseItemList(keyValue);
  183. foreach (var ass_PurchaseItem in ass_PurchaseItemData)
  184. {
  185. var ass_PurchaseItemApply = ass_PurchaseItemApplyIBLL.GetAss_PurchaseItemApplyEntity(ass_PurchaseItem.PAIId);
  186. var ass_AssetsInfoItemApply = new Ass_AssetsInfoItemApplyEntity();
  187. ass_AssetsInfoItemApply.AAIName = ass_PurchaseItemApply.PAIName;
  188. ass_AssetsInfoItemApply.AAITId = ass_PurchaseItemApply.PAITId;
  189. ass_AssetsInfoItemApply.AAIEName = ass_PurchaseItemApply.PAIEName;
  190. ass_AssetsInfoItemApply.AAIPhoto = ass_PurchaseItemApply.PAIPhoto;
  191. ass_AssetsInfoItemApply.AAIContent = ass_PurchaseItemApply.PAIContent;
  192. ass_AssetsInfoItemApply.AAIModel = ass_PurchaseItem.PIActualModel;
  193. ass_AssetsInfoItemApply.AAIManufacturer = ass_PurchaseItem.PIActualManufacturer;
  194. ass_AssetsInfoItemApply.AAISupplierId = ass_PurchaseItemApply.PAISId;
  195. ass_AssetsInfoItemApply.AAISource = "GouRu";
  196. ass_AssetsInfoItemApply.AAIPrice = ass_PurchaseItem.PIActualPrice;
  197. ass_AssetsInfoItemApply.AAIStock = ass_PurchaseItem.PIActualAmount;
  198. ass_AssetsInfoItemApply.AAIUse = ass_PurchaseItemApply.PAIUse;
  199. aaprice += Convert.ToDecimal(ass_PurchaseItem.PIActualPrice * ass_PurchaseItem.PIActualAmount);
  200. ass_AssetsInfoItemApply.PIId = ass_PurchaseItem.PIId;
  201. var hasdetail = false;//不生成资产明细
  202. if (ass_PurchaseItem.PIActualAmount == (int)ass_PurchaseItem.PIActualAmount)
  203. {
  204. hasdetail = true;
  205. }
  206. ass_AssetsInfoItemApply.AAIHasDetail = hasdetail;
  207. ass_AssetsInfoItemApplyList.Add(ass_AssetsInfoItemApply);
  208. }
  209. ass_AssetsInfoApplyEntity.AAPrice = aaprice;
  210. ass_AssetsInfoApplyIBLL.SaveEntity("", ass_AssetsInfoApplyEntity, ass_AssetsInfoItemApplyList);
  211. return Success("保存成功!");
  212. }
  213. #endregion
  214. #region 扩展数据
  215. /// <summary>
  216. /// 开始采购
  217. /// <param name="keyValue">主键</param>
  218. /// <summary>
  219. /// <returns></returns>
  220. [HttpPost]
  221. [ValidateAntiForgeryToken]
  222. [AjaxOnly]
  223. public ActionResult StartPurchase(string keyValue, Ass_PurchaseEntity entity)
  224. {
  225. var ass_PurchaseEntity = ass_PurchaseIBLL.GetAss_PurchaseEntity(keyValue);
  226. ass_PurchaseEntity.PEstimateTime = entity.PEstimateTime;
  227. ass_PurchaseEntity.PStatus = 1;
  228. ass_PurchaseIBLL.SaveAss_PurchaseEntity(keyValue, ass_PurchaseEntity);
  229. //修改采购申请表的采购状态
  230. if (!string.IsNullOrEmpty(ass_PurchaseEntity.PAId))
  231. {
  232. var ass_PurchaseApplyEntity = ass_PurchaseApplyIBLL.GetAss_PurchaseApplyEntity(ass_PurchaseEntity.PAId);
  233. ass_PurchaseApplyEntity.PStatus = 1;
  234. ass_PurchaseApplyIBLL.SaveAss_PurchaseApplyEntity(ass_PurchaseApplyEntity.PAId, ass_PurchaseApplyEntity);
  235. }
  236. return Success("保存成功!");
  237. }
  238. /// <summary>
  239. /// 根据采购状态获取采购列表数据
  240. /// <param name="pStatus">采购状态</param>
  241. /// <param name="queryJson">查询参数</param>
  242. /// <summary>
  243. /// <returns></returns>
  244. [HttpGet]
  245. [AjaxOnly]
  246. public ActionResult GetAss_PurchaseListByPStatus(int pStatus, string queryJson)
  247. {
  248. var data = ass_PurchaseIBLL.GetAss_PurchaseListByPStatus(pStatus, queryJson);
  249. return JsonResult(data);
  250. }
  251. #endregion
  252. }
  253. }