| | |
| | | using WIDESEA_DTO.Basic; |
| | | using WIDESEA_DTO.ERP; |
| | | using WIDESEA_External.ERPService; |
| | | using WIDESEA_External.Model; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_IInboundRepository; |
| | | using WIDESEA_IInboundService; |
| | | using WIDESEA_InboundService; |
| | | using WIDESEA_IOutboundService; |
| | | using WIDESEA_Model.Models; |
| | | using static WIDESEA_DTO.ErpResponseContent; |
| | | |
| | | namespace WIDESEA_WMSServer.Controllers.ERP |
| | | { |
| | | /// <summary> |
| | | /// ERPæ¥å£ |
| | | /// </summary> |
| | | [Route("api/Erp")] |
| | | [ApiController] |
| | | public class ErpController : ControllerBase |
| | | { |
| | | private readonly IPurchaseOrderRepository _purchaseOrderRepository; |
| | | private readonly IPurchaseOrderService _purchaseOrderService; |
| | | private readonly ISupplierInfoRepository _supplierInfoRepository; |
| | | private readonly IMaterielInfoRepository _materielInfoRepository; |
| | | private readonly IBasicService _basicService; |
| | | private readonly IOutboundService _outboundService; |
| | | private readonly IInboundService _inboundService; |
| | | private readonly IInvokeERPService _invokeERPService; |
| | | private readonly IReturnOrderService _returnOrderService; |
| | | |
| | | public ErpController(IPurchaseOrderRepository purchaseOrderRepository, IPurchaseOrderService purchaseOrderService, ISupplierInfoRepository supplierInfoRepository, IMaterielInfoRepository materielInfoRepository) |
| | | public ErpController(IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, |
| | | IInvokeERPService invokeERPService, IReturnOrderService returnOrderService) |
| | | { |
| | | _purchaseOrderRepository = purchaseOrderRepository; |
| | | _purchaseOrderService = purchaseOrderService; |
| | | _supplierInfoRepository = supplierInfoRepository; |
| | | _materielInfoRepository = materielInfoRepository; |
| | | _basicService = basicService; |
| | | _outboundService = outboundService; |
| | | _inboundService = inboundService; |
| | | _invokeERPService = invokeERPService; |
| | | _returnOrderService = returnOrderService; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥æ¶ERPéè´åä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("ReceivePurchaseOrder"), AllowAnonymous, MethodParamsValidate] |
| | | public WebResponseContent ReceivePurchaseOrder([FromBody] Dt_PurchaseOrder model) |
| | | public ErpResponseContent ReceivePurchaseOrder([FromBody] Root<PurchaseOrderModel> model) |
| | | { |
| | | try |
| | | { |
| | | _purchaseOrderRepository.AddData(model, x => x.Details); |
| | | |
| | | foreach (var item in model.Details) |
| | | { |
| | | Dt_ReceiveOrder receiveOrder = new Dt_ReceiveOrder() |
| | | { |
| | | ReceiveOrderStatus = InOrderStatusEnum.æªå¼å§.ObjToInt(), |
| | | WarehouseId = item.WarehouseId, |
| | | SuppliersId = model.SupplierCode, |
| | | ReceiveOrderType = InOrderTypeEnum.Purchase.ObjToInt(), |
| | | ReceiveDate = DateTime.Now, |
| | | }; |
| | | } |
| | | |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | WebResponseContent content = _inboundService.PurchaseOrderService.ReceivePurchaseOrder(model.Content); |
| | | if (content.Status) return Instance.OK(); |
| | | else return Instance.Error(content.Message); |
| | | } |
| | | |
| | | [HttpPost, Route("ReceivePurchaseOrderSingle"), AllowAnonymous, MethodParamsValidate] |
| | | public WebResponseContent ReceivePurchaseOrderSingle(PurchaseOrderModel model) |
| | | /// <summary> |
| | | /// æ¥æ¶ERPä»åºåå·¥åè´¨æ£åå·¥æ°æ® |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("ReceiveUser"), AllowAnonymous, MethodParamsValidate] |
| | | public ErpResponseContent ReceiveUser([FromBody] Root<UserInfoDTO> model) |
| | | { |
| | | return _purchaseOrderService.ReceivePurchaseOrderSingle(model); |
| | | WebResponseContent content = _basicService.UserInfoService.ReceiveUser(model.Content); |
| | | if (content.Status) return Instance.OK(); |
| | | else return Instance.Error(content.Message); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥æ¶ERPä¾åºåä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("ReceiveSupplier"), AllowAnonymous, MethodParamsValidate] |
| | | public WebResponseContent ReceiveSupplier(SupplierDTO model) |
| | | public ErpResponseContent ReceiveSupplier([FromBody] Root<SupplierDTO> model) |
| | | { |
| | | try |
| | | { |
| | | if (model.OperateType == "0") |
| | | { |
| | | Dt_SupplierInfo supplierInfo = new Dt_SupplierInfo() |
| | | { |
| | | Status = 1, |
| | | SupplierCode = model.Code, |
| | | SupplierName = model.Name, |
| | | SupplierShortName = model.ShortName |
| | | }; |
| | | |
| | | _supplierInfoRepository.AddData(supplierInfo); |
| | | } |
| | | else if (model.OperateType == "1") |
| | | { |
| | | Dt_SupplierInfo supplierInfo = _supplierInfoRepository.QueryFirst(x => x.SupplierCode == model.Code); |
| | | if (supplierInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä¾åºåä¿¡æ¯"); |
| | | } |
| | | supplierInfo.Status = 1; |
| | | supplierInfo.SupplierCode = model.Code; |
| | | supplierInfo.SupplierName = model.Name; |
| | | supplierInfo.SupplierShortName = model.ShortName; |
| | | _supplierInfoRepository.UpdateData(supplierInfo); |
| | | } |
| | | else if (model.OperateType == "2") |
| | | { |
| | | Dt_SupplierInfo supplierInfo = _supplierInfoRepository.QueryFirst(x => x.SupplierCode == model.Code); |
| | | if (supplierInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä¾åºåä¿¡æ¯"); |
| | | } |
| | | _supplierInfoRepository.DeleteData(supplierInfo); |
| | | } |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | WebResponseContent content = _basicService.SupplierInfoService.ReceiveSupplier(model.Content); |
| | | if (content.Status) return Instance.OK(); |
| | | else return Instance.Error(content.Message); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥æ¶ERPç©æä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("ReceiveMaterial"), AllowAnonymous, MethodParamsValidate] |
| | | public WebResponseContent ReceiveMaterial(MaterielInfoDTO model) |
| | | public ErpResponseContent ReceiveMaterial([FromBody] Root<MaterielInfoDTO> model) |
| | | { |
| | | try |
| | | { |
| | | if (model.OperateType == 0) |
| | | { |
| | | Dt_MaterielInfo materielInfo = new Dt_MaterielInfo() |
| | | { |
| | | IsCheck = (WhetherEnum)model.IsCheck, |
| | | MaterielCode = model.Code, |
| | | MaterielInvOrgId = model.InvOrgId, |
| | | MaterielLength = model.Length, |
| | | MaterielModel = model.Model, |
| | | MaterielName = model.Name, |
| | | MaterielSize = model.Size, |
| | | MaterielSourceType = (MaterielSourceTypeEnum)model.ItemSourceType, |
| | | MaterielSpec = "model.", |
| | | MaterielState = (EnableEnum)model.State, |
| | | MaterielThickness = model.Thickness, |
| | | MaterielType = (MaterielTypeEnum)model.ItemType, |
| | | MaterielUnit = model.Unit, |
| | | MaterielVersion = model.MaterialVersion, |
| | | MaterielWide = model.Wide, |
| | | WarehouseId = model.WaId, |
| | | }; |
| | | _materielInfoRepository.AddData(materielInfo); |
| | | } |
| | | else if (model.OperateType == 1) |
| | | { |
| | | Dt_MaterielInfo materielInfo = _materielInfoRepository.QueryFirst(x => x.MaterielCode == model.Code); |
| | | if (materielInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°ç©æä¿¡æ¯"); |
| | | } |
| | | |
| | | materielInfo.IsCheck = (WhetherEnum)model.IsCheck; |
| | | materielInfo.MaterielCode = model.Code; |
| | | materielInfo.MaterielInvOrgId = model.InvOrgId; |
| | | materielInfo.MaterielLength = model.Length; |
| | | materielInfo.MaterielModel = model.Model; |
| | | materielInfo.MaterielName = model.Name; |
| | | materielInfo.MaterielSize = model.Size; |
| | | materielInfo.MaterielSourceType = (MaterielSourceTypeEnum)model.ItemSourceType; |
| | | materielInfo.MaterielSpec = model.StandType; |
| | | materielInfo.MaterielState = (EnableEnum)model.State; |
| | | materielInfo.MaterielThickness = model.Thickness; |
| | | materielInfo.MaterielType = (MaterielTypeEnum)model.ItemType; |
| | | materielInfo.MaterielUnit = model.Unit; |
| | | materielInfo.MaterielVersion = model.MaterialVersion; |
| | | materielInfo.MaterielWide = model.Wide; |
| | | materielInfo.WarehouseId = model.WaId; |
| | | _materielInfoRepository.UpdateData(materielInfo); |
| | | } |
| | | else if (model.OperateType == 2) |
| | | { |
| | | Dt_MaterielInfo materielInfo = _materielInfoRepository.QueryFirst(x => x.MaterielCode == model.Code); |
| | | if (materielInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°ç©æä¿¡æ¯"); |
| | | } |
| | | |
| | | _materielInfoRepository.DeleteData(materielInfo); |
| | | } |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | WebResponseContent content = _basicService.MaterielInfoService.ReceiveMaterial(model.Content); |
| | | if (content.Status) return Instance.OK(); |
| | | else return Instance.Error(content.Message); |
| | | } |
| | | |
| | | public WebResponseContent ReceiveOutOrder(ErpOutOrderDTO erpOutOrder) |
| | | /// <summary> |
| | | /// æ¥æ¶ERP客æ·ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("ReceiveCustomer"), AllowAnonymous, MethodParamsValidate] |
| | | public ErpResponseContent ReceiveCustomer([FromBody] Root<CustomerInfoDTO> model) |
| | | { |
| | | try |
| | | { |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch(Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | WebResponseContent content = _basicService.CustomerInfoService.ReceiveCustomer(model.Content); |
| | | if (content.Status) return Instance.OK(); |
| | | else return Instance.Error(content.Message); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥æ¶ERPåºåºåä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="erpOutOrder"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("ReceiveOutOrder"), AllowAnonymous, MethodParamsValidate] |
| | | public ErpResponseContent ReceiveOutOrder([FromBody] Root<ErpOutOrderDTO> erpOutOrder) |
| | | { |
| | | WebResponseContent content = _outboundService.OutboundOrderService.ReceiveOutOrder(erpOutOrder.Content); |
| | | if (content.Status) return Instance.OK(); |
| | | else return Instance.Error(content.Message); |
| | | } |
| | | /// <summary> |
| | | /// æ¥æ¶ERPæååºåºåä¿¡æ¯(订ååºåº/å¯å®åºåº) |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("ProductDeliveryOrder"), AllowAnonymous, MethodParamsValidate] |
| | | public async Task<ErpResponseContent> ProductDeliveryOrder([FromBody] Root<ErpProOutOrderDTO> erpProOutOrder) |
| | | { |
| | | var content = await _outboundService.ProOutOrderService.ProductDeliveryOrder(erpProOutOrder.Content); |
| | | if (content.Status) return Instance.OK(); |
| | | else return Instance.Error(content.Message); |
| | | } |
| | | /// <summary> |
| | | /// æåå¯å®è½¬å
¥/è°æ¨å
¥åº |
| | | /// </summary> |
| | | /// <param name="root"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("ProductWarehousingOrder"), AllowAnonymous, MethodParamsValidate] |
| | | public ErpResponseContent ProductWarehousingOrder([FromBody] Root<ErpProductWarehousingOrderDTO> root) |
| | | { |
| | | WebResponseContent content = _inboundService.ErpProInOrderService.ProductWarehousingOrder(root.Content); |
| | | if (content.Status) return Instance.OK(); |
| | | else return Instance.Error(content.Message); |
| | | } |
| | | /// <summary> |
| | | /// æåè°æ¨åºï¼ç åï¼ |
| | | /// </summary> |
| | | /// <param name="root"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("ProductTransferOrder"), AllowAnonymous, MethodParamsValidate] |
| | | public ErpResponseContent ProductTransferOrder([FromBody] Root<ErpProductTransferOrderDTO> root) |
| | | { |
| | | WebResponseContent content = _outboundService.ErpProTransferOrderService.ProductTransferOrder(root.Content); |
| | | if (content.Status) return Instance.OK(); |
| | | else return Instance.Error(content.Message); |
| | | } |
| | | /// <summary> |
| | | /// æåæ¥åºåºåºåæ¥æ¶ |
| | | /// </summary> |
| | | /// <param name="root"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("ProductScrappedOrder"), AllowAnonymous, MethodParamsValidate] |
| | | public ErpResponseContent ProductScrappedOrder([FromBody] Root<ErpProductScrappedOrderDTO> root) |
| | | { |
| | | return Instance.OK(); |
| | | } |
| | | /// <summary> |
| | | /// æå颿åºåºåæ¥æ¶ |
| | | /// </summary> |
| | | /// <param name="root"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("ProductOutOrder"), AllowAnonymous, MethodParamsValidate] |
| | | public ErpResponseContent ProductOutOrder([FromBody] Root<ErpProOutLingOrder> root) |
| | | { |
| | | return Instance.OK(); |
| | | } |
| | | /// <summary> |
| | | /// éå®ææ´¾åæ¥æ¶ |
| | | /// </summary> |
| | | [HttpPost, Route("ProductSpecifyVer"), AllowAnonymous, MethodParamsValidate] |
| | | public async Task<ErpResponseContent> ProductSpecifyVerAsync([FromBody] Root<ErpProductSpecifyVerDTO> root) |
| | | { |
| | | var content = await _outboundService.ProOutOrderService.ProductSpecifyVer(root.Content); |
| | | if (content.Status) return Instance.OK(); |
| | | else return Instance.Error(content.Message); |
| | | } |
| | | /// <summary> |
| | | /// æ¥æ¶ERPéæåä¿¡æ¯ |
| | | /// </summary> |
| | | [HttpPost, Route("ReturnOrder"), AllowAnonymous, MethodParamsValidate] |
| | | public ErpResponseContent ReturnOrder([FromBody] Root<ErpReturnOrderDTO> model) |
| | | { |
| | | WebResponseContent content = _returnOrderService.ReturnOrder(model.Content); |
| | | if (content.Status) return Instance.OK(); |
| | | else return Instance.Error(content.Message); |
| | | } |
| | | /// <summary> |
| | | /// å
¶ä»å
¥åºåæ¥æ¶(è°æå
¥ä»,客ä¾åæ¶,ç©æéå®éè´§) |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("ReceiveWarehousingOrder"), AllowAnonymous, MethodParamsValidate] |
| | | public ErpResponseContent ReceiveWarehousingOrder([FromBody] Root<ErpInOrderDTO> model) |
| | | { |
| | | WebResponseContent content = _inboundService.InbounOrderService.ReceiveWarehousingOrder(model.Content); |
| | | if (content.Status) return Instance.OK(); |
| | | else return Instance.Error(content.Message); |
| | | } |
| | | /// <summary> |
| | | /// æ¨éERPåºåº |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("InvokeOutStandardsApi"), AllowAnonymous] |
| | | public string InvokeOutStandardsApi([FromBody] ERPIssueModel issueModel) |
| | | { |
| | | return _invokeERPService.InvokeOutStandardsApi(issueModel); |
| | | } |
| | | /// <summary> |
| | | /// æ¨éERPæ¶è´§ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("InvokeMatReceiveApi"), AllowAnonymous] |
| | | public string InvokeMatReceiveApi([FromBody]ERPReceiveModel receiveModel) |
| | | { |
| | | return _invokeERPService.InvokeMatReceiveApi(receiveModel); |
| | | } |
| | | /// <summary> |
| | | /// æ¨éERPæ¥æIQCè´¨æ£ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("InvokeCheckOrderApi"), AllowAnonymous] |
| | | public string InvokeCheckOrderApi([FromBody] ERPCheckModel checkModel) |
| | | { |
| | | return _invokeERPService.InvokeCheckOrderApi(checkModel); |
| | | } |
| | | /// <summary> |
| | | /// æ¨éERPç©æéæ£ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("InvokeInspectApi"), AllowAnonymous] |
| | | public string InvokeInspectApi([FromBody] ERPInspectModel eRPInspectModel) |
| | | { |
| | | return _invokeERPService.InvokeInspectApi(eRPInspectModel); |
| | | } |
| | | /// <summary> |
| | | /// æ¨éERPå
¥åº |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("InvokeInboundOrderApi"), AllowAnonymous] |
| | | public string InvokeInboundOrderApi([FromBody]ERPInboundModel inboundModel) |
| | | { |
| | | return _invokeERPService.InvokeInboundOrderApi(inboundModel); |
| | | } |
| | | /// <summary> |
| | | /// æ¨éERPéæä¸æ¥ |
| | | /// </summary> |
| | | [HttpPost, Route("InvokeReturnApi"), AllowAnonymous] |
| | | public string InvokeReturnApi([FromBody] ERPReturnModel returnModel) |
| | | { |
| | | return _invokeERPService.InvokeReturnApi(returnModel); |
| | | } |
| | | /// <summary> |
| | | /// ERPçèµ¢/äºä¸æ¥æ¥å£è°ç¨ |
| | | /// </summary> |
| | | [HttpPost, Route("InvokeTakeStockApi"), AllowAnonymous] |
| | | public string InvokeTakeStockApi([FromBody] ERPTakeStockModel takeModel) |
| | | { |
| | | return _invokeERPService.InvokeTakeStockApi(takeModel); |
| | | } |
| | | /// <summary> |
| | | /// ERPæåå
¥åºä¸æ¥æ¥å£è°ç¨ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("InvokeProInApi"), AllowAnonymous] |
| | | public string InvokeProInApi([FromBody] ERPProInboundModel inboundModel) |
| | | { |
| | | return _invokeERPService.InvokeProInApi(inboundModel); |
| | | } |
| | | /// <summary> |
| | | /// ERPæååºåºä¸æ¥æ¥å£è°ç¨ |
| | | /// </summary> |
| | | [HttpPost, Route("InvokeProOutApi"), AllowAnonymous] |
| | | public string InvokeProOutApi([FromBody] ERPProOutOrderModel outOrderModel) |
| | | { |
| | | return _invokeERPService.InvokeProOutApi(outOrderModel); |
| | | } |
| | | /// <summary> |
| | | /// æå仿£æ¥åºåºåºæ¨éERP |
| | | /// </summary> |
| | | /// <param name="checkModel"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("InvokeProCheckApi"), AllowAnonymous] |
| | | public string InvokeProCheckApi([FromBody] ERPProductCheckModel checkModel) |
| | | { |
| | | return _invokeERPService.InvokeProCheckApi(checkModel); |
| | | } |
| | | /// <summary> |
| | | /// æåè¶
卿æ¥åºæ¨éERp |
| | | /// </summary> |
| | | /// <param name="sheetModel"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("InvokeProScrapSheetApi"), AllowAnonymous] |
| | | public string InvokeProScrapSheetApi([FromBody] ERPScrapSheetModel sheetModel) |
| | | { |
| | | return _invokeERPService.InvokeProScrapSheetApi(sheetModel); |
| | | } |
| | | /// <summary> |
| | | /// æåçç¹çèµ¢/çäº |
| | | /// </summary> |
| | | /// <param name="stockCheckModel"></param> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("InvokeProStockCheckApi"), AllowAnonymous] |
| | | public string InvokeProStockCheckApi([FromBody] ERPProStockCheckModel stockCheckModel) |
| | | { |
| | | return _invokeERPService.InvokeProStockCheckApi(stockCheckModel); |
| | | } |
| | | /// <summary> |
| | | /// æ¥è¯¢éå®ERPå®¢æ· |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("InvokeProSaleCustomer"), AllowAnonymous] |
| | | public string InvokeProSaleCustomer(string saleOrder) |
| | | { |
| | | return _invokeERPService.InvokeProSaleCustomer(saleOrder); |
| | | } |
| | | /// <summary> |
| | | /// æ¥è¯¢éå®ERPå®¢æ· |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("InvokeOutProErpSync"), AllowAnonymous] |
| | | public string InvokeOutProErpSync(string outProOrderNo) |
| | | { |
| | | return _invokeERPService.InvokeOutProErpSync(outProOrderNo); |
| | | } |
| | | /// <summary> |
| | | /// ERPæåå
¥åºäº§ååå·é¢ç§¯æ¥è¯¢ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("InvokeProInErpStatic"), AllowAnonymous] |
| | | public string InvokeProInErpStatic(string partNum, string partNumWithRev) |
| | | { |
| | | return _invokeERPService.InvokeProInErpStatic(partNum, partNumWithRev); |
| | | } |
| | | } |
| | | } |