OrderInfoController.cs 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  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. return View();
  55. }
  56. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoOrderMg), AuditLog("订单管理页面")]
  57. public async Task<ActionResult> OrderMg()
  58. {
  59. ViewBag.OrderStatus = StatesAppService.GetSelectLists("OrderHeader", "OrderStatusId");
  60. ViewBag.OrderItemStatus = StatesAppService.GetSelectLists("OrderItems", "OrderItemStatusId");
  61. ViewBag.OrderStatusStr = StatesAppService.GetSelectListStrs("OrderHeader", "OrderStatusId");
  62. ViewBag.OrderSaleType = StatesAppService.GetSelectLists("OrderHeader", "SaleType");
  63. ViewBag.TagRate = SettingManager.GetSettingValue(ShwasherSettingNames.OrderItemPriceTaxRate);
  64. ViewBag.FromCurrenyId =await QueryAppService.QueryAllCurrency();
  65. ViewBag.ToCNYCurreny = await QueryAppService.QueryCurrencyRate("", "CNY");
  66. ViewBag.EmergencyLevel = StatesAppService.GetSelectLists("OrderItems", "EmergencyLevel");
  67. ViewBag.ProductionOrderStatus = StatesAppService.GetSelectLists("ProductionOrders", "ProductionOrderStatus");
  68. return View();
  69. }
  70. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoOrderStatusMgPrint), AuditLog("订单打印页面")]
  71. public async Task<ActionResult> OrderPrint(string id)
  72. {
  73. if (id.IsNullOrEmpty())
  74. {
  75. throw new UserFriendlyException("无效参数!");
  76. }
  77. var orderHeadDto = await OrderHeadersAppService.Get(new EntityDto<string>(id));
  78. var customer = QueryAppService.GetCustomerInfo(new EntityDto<string>(orderHeadDto.CustomerId));
  79. var customerSend = QueryAppService.GetCustomerSendInfo(new EntityDto<int>(orderHeadDto.CustomerSendId));
  80. var orderItems = ViewOrderItemsRepository.GetAll().Where(i => i.OrderNo == id).OrderBy(i=>i.Id).ToList();
  81. ViewBag.OrderHeadDto = orderHeadDto;
  82. ViewBag.Customer = customer;
  83. ViewBag.CustomerSend = customerSend;
  84. ViewBag.OrderItems = orderItems;
  85. return View();
  86. }
  87. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoOrderMgShowDetail,PermissionNames.PagesOrderInfoOrderStatusMgQuery), AuditLog("订单详情查看页面")]
  88. public async Task<ActionResult> OrderDetail(string id)
  89. {
  90. if (id.IsNullOrEmpty())
  91. {
  92. throw new UserFriendlyException("无效参数!");
  93. }
  94. var orderHeadDto =await OrderHeadersAppService.Get(new EntityDto<string>(id));
  95. var customer = QueryAppService.GetCustomerInfo(new EntityDto<string>(orderHeadDto.CustomerId));
  96. if (customer == null)
  97. {
  98. CheckErrors(new IwbIdentityResult("客户信息不存在!"));
  99. }
  100. var customerSend = QueryAppService.GetCustomerSendInfo(new EntityDto<int>(orderHeadDto.CustomerSendId));
  101. if (customerSend == null)
  102. {
  103. CheckErrors(new IwbIdentityResult("客户发货信息不存在!"));
  104. }
  105. ViewBag.OrderHeadDto = orderHeadDto;
  106. ViewBag.Customer = customer;
  107. ViewBag.CustomerSend = customerSend;
  108. var orderItems = ViewOrderItemsRepository.GetAll().Where(i => i.OrderNo == id).ToList();
  109. List<OrderItemSendDto> orderItemSendDtos = new List<OrderItemSendDto>();
  110. if (orderItems.Any())
  111. {
  112. orderItemSendDtos = ObjectMapper.Map<List<OrderItemSendDto>>(orderItems);
  113. foreach (var itemSendDto in orderItemSendDtos)
  114. {
  115. List<ViewOrderSendStickBill> list = ViewOrderSendStickBillRepository.GetAllList(i => i.OrderItemId == itemSendDto.Id).OrderByDescending(i => i.SendDate).ToList();
  116. itemSendDto.ViewOrderSendStickBills = list;
  117. }
  118. }
  119. ViewBag.OrderItemSendDtos = orderItemSendDtos;
  120. return View();
  121. }
  122. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoOrderMgUpdate), AuditLog("订单详情明细信息维护页面")]
  123. public async Task<ActionResult> OrderItemDetail(string id)
  124. {
  125. if (id.IsNullOrEmpty())
  126. {
  127. throw new UserFriendlyException("未找到对应的订单!");
  128. }
  129. var loOrderHeaderDto = await OrderHeadersAppService.Get(new EntityDto<string>() { Id = id });
  130. ViewBag.MaterialSelect = QueryAppService.GetProductPropertyList("Material");
  131. ViewBag.SurfaceColorSelect = QueryAppService.GetProductPropertyList("SurfaceColor");
  132. ViewBag.RigiditySelect = QueryAppService.GetProductPropertyList("Rigidity");
  133. ViewBag.CustomerDefaultProducts = QueryAppService.GetDefualtProductByOrderNo(id);
  134. return View(loOrderHeaderDto);
  135. }
  136. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoOrderQueryMg), AuditLog("订单明细查询页面")]
  137. public ActionResult OrderQueryMg()
  138. {
  139. ViewBag.OrderStatus = StatesAppService.GetSelectLists("OrderHeader", "OrderStatusId");
  140. ViewBag.OrderItemStatus = StatesAppService.GetSelectLists("OrderItems", "OrderItemStatusId");
  141. ViewBag.OrderStatusStr = StatesAppService.GetSelectListStrs("OrderHeader", "OrderStatusId");
  142. ViewBag.OrderSaleType = StatesAppService.GetSelectLists("OrderHeader", "SaleType");
  143. return View();
  144. }
  145. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoNotCompleteOrderItem), AuditLog("未完成订单查看页面")]
  146. public ActionResult NotCompleteOrderItem()
  147. {
  148. ViewBag.OrderStatus = StatesAppService.GetSelectLists("OrderHeader", "OrderStatusId");
  149. ViewBag.OrderItemStatus = StatesAppService.GetSelectLists("OrderItems", "OrderItemStatusId",i=>i.CodeValue!="11");
  150. //ViewBag.OrderStatusStr = StatesAppService.GetSelectListStrs("OrderHeader", "OrderStatusId");
  151. ViewBag.OrderSaleType = StatesAppService.GetSelectLists("OrderHeader", "SaleType");
  152. return View();
  153. }
  154. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoOrderItemStatistics), AuditLog("订单明细统计")]
  155. public ActionResult OrderItemStatistics()
  156. {
  157. //ViewBag.OrderStatus = StatesAppService.GetSelectLists("OrderHeader", "OrderStatusId");
  158. //ViewBag.OrderItemStatus = StatesAppService.GetSelectLists("OrderItems", "OrderItemStatusId", i => i.CodeValue != "11");
  159. //ViewBag.OrderStatusStr = StatesAppService.GetSelectListStrs("OrderHeader", "OrderStatusId");
  160. ViewBag.OrderSaleType = StatesAppService.GetSelectLists("OrderHeader", "SaleType");
  161. return View();
  162. }
  163. [AbpMvcAuthorize(PermissionNames.PagesOrderInfoOrderSendWarn), AuditLog("订单分批发货提醒")]
  164. public ActionResult OrderSendWarn()
  165. {
  166. return View();
  167. }
  168. }
  169. }