OrderInfoController.cs 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using System.Web;
  6. using System.Web.Mvc;
  7. using Abp.Application.Services.Dto;
  8. using Abp.Domain.Repositories;
  9. using Abp.Extensions;
  10. using Abp.UI;
  11. using Abp.Web.Mvc.Authorization;
  12. using IwbZero.Auditing;
  13. using IwbZero.IdentityFramework;
  14. using IwbZero.Setting;
  15. using ShwasherSys.Authorization.Permissions;
  16. using ShwasherSys.BaseSysInfo.States;
  17. using ShwasherSys.Common;
  18. using ShwasherSys.CustomerInfo;
  19. using ShwasherSys.Invoice;
  20. using ShwasherSys.Models.OrderInfo;
  21. using ShwasherSys.Order;
  22. using ShwasherSys.ProductInfo;
  23. namespace ShwasherSys.Controllers
  24. {
  25. [AbpMvcAuthorize,AuditLog("订单管理")]
  26. public class OrderInfoController : ShwasherControllerBase
  27. {
  28. protected IOrderHeadersAppService OrderHeadersAppService;
  29. protected IProductsAppService ProductsAppService;
  30. protected IQueryAppService QueryAppService;
  31. protected ICustomerDefaultProductAppService CustomerDefaultProductAppService;
  32. protected IRepository<ViewOrderItems> ViewOrderItemsRepository;
  33. protected IRepository<ViewOrderSendStickBill> ViewOrderSendStickBillRepository;
  34. public OrderInfoController(IStatesAppService statesAppService, IOrderHeadersAppService orderHeadersAppService,IProductsAppService productsAppService, ICustomerDefaultProductAppService customerDefaultProductAppService, IRepository<ViewOrderItems> viewOrderItemsRepository, IRepository<ViewOrderSendStickBill> viewOrderSendStickBillRepository, IQueryAppService queryAppService, IIwbSettingManager settingManager)
  35. {
  36. OrderHeadersAppService = orderHeadersAppService;
  37. StatesAppService = statesAppService;
  38. ProductsAppService = productsAppService;
  39. CustomerDefaultProductAppService = customerDefaultProductAppService;
  40. ViewOrderItemsRepository = viewOrderItemsRepository;
  41. ViewOrderSendStickBillRepository = viewOrderSendStickBillRepository;
  42. QueryAppService = queryAppService;
  43. SettingManager = settingManager;
  44. }
  45. // GET: OrderInfo
  46. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoOrderStatusMg), AuditLog("订单状态管理页面")]
  47. public ActionResult OrderStatusMg()
  48. {
  49. ViewBag.OrderStatus = StatesAppService.GetSelectLists("OrderHeader", "OrderStatusId");
  50. ViewBag.OrderItemStatus = StatesAppService.GetSelectLists("OrderItems", "OrderItemStatusId");
  51. ViewBag.OrderStatusStr = StatesAppService.GetSelectListStrs("OrderHeader", "OrderStatusId");
  52. ViewBag.ViewPriceRole = SettingManager.GetSettingValue(ShwasherSettingNames.CanShowOrderItemPrice);
  53. ViewBag.EmergencyLevel = StatesAppService.GetSelectLists("OrderItems", "EmergencyLevel");
  54. ViewBag.OrderSaleType = StatesAppService.GetSelectLists("OrderHeader", "SaleType");
  55. return View();
  56. }
  57. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoOrderMg), AuditLog("订单管理页面")]
  58. public async Task<ActionResult> OrderMg()
  59. {
  60. ViewBag.OrderStatus = StatesAppService.GetSelectLists("OrderHeader", "OrderStatusId");
  61. ViewBag.OrderItemStatus = StatesAppService.GetSelectLists("OrderItems", "OrderItemStatusId");
  62. ViewBag.OrderStatusStr = StatesAppService.GetSelectListStrs("OrderHeader", "OrderStatusId");
  63. ViewBag.OrderSaleType = StatesAppService.GetSelectLists("OrderHeader", "SaleType");
  64. ViewBag.TagRate = SettingManager.GetSettingValue(ShwasherSettingNames.OrderItemPriceTaxRate);
  65. ViewBag.FromCurrenyId =await QueryAppService.QueryAllCurrency();
  66. ViewBag.ToCNYCurreny = await QueryAppService.QueryCurrencyRate("", "CNY");
  67. ViewBag.EmergencyLevel = StatesAppService.GetSelectLists("OrderItems", "EmergencyLevel");
  68. ViewBag.ProductionOrderStatus = StatesAppService.GetSelectLists("ProductionOrders", "ProductionOrderStatus");
  69. return View();
  70. }
  71. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoOrderStatusMgPrint), AuditLog("订单打印页面")]
  72. public async Task<ActionResult> OrderPrint(string id)
  73. {
  74. if (id.IsNullOrEmpty())
  75. {
  76. throw new UserFriendlyException("无效参数!");
  77. }
  78. var orderHeadDto = await OrderHeadersAppService.Get(new EntityDto<string>(id));
  79. var customer = QueryAppService.GetCustomerInfo(new EntityDto<string>(orderHeadDto.CustomerId));
  80. var customerSend = QueryAppService.GetCustomerSendInfo(new EntityDto<int>(orderHeadDto.CustomerSendId));
  81. var orderItems = ViewOrderItemsRepository.GetAll().Where(i => i.OrderNo == id).OrderBy(i=>i.Id).ToList();
  82. ViewBag.OrderHeadDto = orderHeadDto;
  83. ViewBag.Customer = customer;
  84. ViewBag.CustomerSend = customerSend;
  85. ViewBag.OrderItems = orderItems;
  86. return View();
  87. }
  88. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoOrderMgShowDetail,PermissionNames.PagesOrderInfoOrderStatusMgQuery), AuditLog("订单详情查看页面")]
  89. public async Task<ActionResult> OrderDetail(string id)
  90. {
  91. if (id.IsNullOrEmpty())
  92. {
  93. throw new UserFriendlyException("无效参数!");
  94. }
  95. var orderHeadDto =await OrderHeadersAppService.Get(new EntityDto<string>(id));
  96. var customer = QueryAppService.GetCustomerInfo(new EntityDto<string>(orderHeadDto.CustomerId));
  97. if (customer == null)
  98. {
  99. CheckErrors(new IwbIdentityResult("客户信息不存在!"));
  100. }
  101. var customerSend = QueryAppService.GetCustomerSendInfo(new EntityDto<int>(orderHeadDto.CustomerSendId));
  102. if (customerSend == null)
  103. {
  104. CheckErrors(new IwbIdentityResult("客户发货信息不存在!"));
  105. }
  106. ViewBag.OrderHeadDto = orderHeadDto;
  107. ViewBag.Customer = customer;
  108. ViewBag.CustomerSend = customerSend;
  109. var orderItems = ViewOrderItemsRepository.GetAll().Where(i => i.OrderNo == id).ToList();
  110. List<OrderItemSendDto> orderItemSendDtos = new List<OrderItemSendDto>();
  111. if (orderItems.Any())
  112. {
  113. orderItemSendDtos = ObjectMapper.Map<List<OrderItemSendDto>>(orderItems);
  114. foreach (var itemSendDto in orderItemSendDtos)
  115. {
  116. List<ViewOrderSendStickBill> list = ViewOrderSendStickBillRepository.GetAllList(i => i.OrderItemId == itemSendDto.Id).OrderByDescending(i => i.SendDate).ToList();
  117. itemSendDto.ViewOrderSendStickBills = list;
  118. }
  119. }
  120. ViewBag.OrderItemSendDtos = orderItemSendDtos;
  121. return View();
  122. }
  123. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoOrderMgUpdate), AuditLog("订单详情明细信息维护页面")]
  124. public async Task<ActionResult> OrderItemDetail(string id)
  125. {
  126. if (id.IsNullOrEmpty())
  127. {
  128. throw new UserFriendlyException("未找到对应的订单!");
  129. }
  130. var loOrderHeaderDto = await OrderHeadersAppService.Get(new EntityDto<string>() { Id = id });
  131. ViewBag.MaterialSelect = QueryAppService.GetProductPropertyList("Material");
  132. ViewBag.SurfaceColorSelect = QueryAppService.GetProductPropertyList("SurfaceColor");
  133. ViewBag.RigiditySelect = QueryAppService.GetProductPropertyList("Rigidity");
  134. ViewBag.CustomerDefaultProducts = QueryAppService.GetDefualtProductByOrderNo(id);
  135. return View(loOrderHeaderDto);
  136. }
  137. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoOrderQueryMg), AuditLog("订单明细查询页面")]
  138. public ActionResult OrderQueryMg()
  139. {
  140. ViewBag.OrderStatus = StatesAppService.GetSelectLists("OrderHeader", "OrderStatusId");
  141. ViewBag.OrderItemStatus = StatesAppService.GetSelectLists("OrderItems", "OrderItemStatusId");
  142. ViewBag.OrderStatusStr = StatesAppService.GetSelectListStrs("OrderHeader", "OrderStatusId");
  143. ViewBag.OrderSaleType = StatesAppService.GetSelectLists("OrderHeader", "SaleType");
  144. return View();
  145. }
  146. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoNotCompleteOrderItem), AuditLog("未完成订单查看页面")]
  147. public ActionResult NotCompleteOrderItem()
  148. {
  149. ViewBag.OrderStatus = StatesAppService.GetSelectLists("OrderHeader", "OrderStatusId");
  150. ViewBag.OrderItemStatus = StatesAppService.GetSelectLists("OrderItems", "OrderItemStatusId",i=>i.CodeValue!="11");
  151. //ViewBag.OrderStatusStr = StatesAppService.GetSelectListStrs("OrderHeader", "OrderStatusId");
  152. ViewBag.OrderSaleType = StatesAppService.GetSelectLists("OrderHeader", "SaleType");
  153. return View();
  154. }
  155. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoOrderItemStatistics), AuditLog("订单明细统计")]
  156. public ActionResult OrderItemStatistics()
  157. {
  158. //ViewBag.OrderStatus = StatesAppService.GetSelectLists("OrderHeader", "OrderStatusId");
  159. //ViewBag.OrderItemStatus = StatesAppService.GetSelectLists("OrderItems", "OrderItemStatusId", i => i.CodeValue != "11");
  160. //ViewBag.OrderStatusStr = StatesAppService.GetSelectListStrs("OrderHeader", "OrderStatusId");
  161. ViewBag.OrderSaleType = StatesAppService.GetSelectLists("OrderHeader", "SaleType");
  162. return View();
  163. }
  164. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoOrderSendWarn), AuditLog("订单分批发货提醒")]
  165. public ActionResult OrderSendWarn()
  166. {
  167. return View();
  168. }
  169. }
  170. }