OrderInfoController.cs 9.8 KB

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