|  |  |  | 
|---|
|  |  |  | using System; | 
|---|
|  |  |  | using AutoMapper; | 
|---|
|  |  |  | using MailKit.Search; | 
|---|
|  |  |  | using System; | 
|---|
|  |  |  | using System.Collections.Generic; | 
|---|
|  |  |  | using System.Linq; | 
|---|
|  |  |  | using System.Text; | 
|---|
|  |  |  | 
|---|
|  |  |  | using WIDESEA_Common.CommonEnum; | 
|---|
|  |  |  | using WIDESEA_Common.OrderEnum; | 
|---|
|  |  |  | using WIDESEA_Core; | 
|---|
|  |  |  | using WIDESEA_Core.BaseRepository; | 
|---|
|  |  |  | using WIDESEA_Core.BaseServices; | 
|---|
|  |  |  | using WIDESEA_Core.Helper; | 
|---|
|  |  |  | using WIDESEA_DTO; | 
|---|
|  |  |  | using WIDESEA_DTO.Basic; | 
|---|
|  |  |  | using WIDESEA_DTO.ERP; | 
|---|
|  |  |  | using WIDESEA_External.ERPService; | 
|---|
|  |  |  | using WIDESEA_External.Model; | 
|---|
|  |  |  | using WIDESEA_IBasicRepository; | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | public class ReceiveOrderService : ServiceBase<Dt_ReceiveOrder, IReceiveOrderRepository>, IReceiveOrderService | 
|---|
|  |  |  | { | 
|---|
|  |  |  | private readonly IUnitOfWorkManage _unitOfWorkManage; | 
|---|
|  |  |  | private readonly IMapper _mapper; | 
|---|
|  |  |  | private readonly ICheckOrderRepository _checkOrderRepository; | 
|---|
|  |  |  | private readonly IInboundRepository _inboundRepository; | 
|---|
|  |  |  | private readonly IBasicRepository _basicRepository; | 
|---|
|  |  |  | private readonly IInvokeERPService _invokeERPService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public ReceiveOrderService(IReceiveOrderRepository BaseDal, ICheckOrderRepository checkOrderRepository, IInboundRepository inboundRepository, IBasicRepository basicRepository, IInvokeERPService invokeERPService) : base(BaseDal) | 
|---|
|  |  |  | public ReceiveOrderService(IReceiveOrderRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IMapper mapper, ICheckOrderRepository checkOrderRepository, IInboundRepository inboundRepository, IBasicRepository basicRepository, IInvokeERPService invokeERPService) : base(BaseDal) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | _mapper = mapper; | 
|---|
|  |  |  | _unitOfWorkManage = unitOfWorkManage; | 
|---|
|  |  |  | _checkOrderRepository = checkOrderRepository; | 
|---|
|  |  |  | _inboundRepository = inboundRepository; | 
|---|
|  |  |  | _basicRepository = basicRepository; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return base.AddData(saveModel); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | /// æ¶è´§å®æå¹¶åä¼ ERP | 
|---|
|  |  |  | /// </summary> | 
|---|
|  |  |  | /// <param name="orderId"></param> | 
|---|
|  |  |  | /// <returns></returns> | 
|---|
|  |  |  | public WebResponseContent FeedbackReceiveOrder(int orderId) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | try | 
|---|
|  |  |  | 
|---|
|  |  |  | if (receiveOrder == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"æªæ¾å°æ¶è´§å"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (receiveOrder.ReceiveOrderStatus == ReceiveOrderStatusEnum.Completed.ObjToInt()) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"æ¶è´§å已宿"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (receiveOrder.Details == null || receiveOrder.Details.Count == 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  | PriceInTax = 0, | 
|---|
|  |  |  | PurchaseOrderCode = item.PurchaseOrderNo, | 
|---|
|  |  |  | PurchaseOrderSerno = item.PurchaseOrderDetailRowNo, | 
|---|
|  |  |  | QtyReceived = item.ReceivedQuantity, | 
|---|
|  |  |  | QtyRecieved = item.ReceivedQuantity.ObjToInt(), | 
|---|
|  |  |  | Serno = item.RowNo, | 
|---|
|  |  |  | Supplotno = "", | 
|---|
|  |  |  | Taxrate = "" | 
|---|
|  |  |  | Taxrate = "", | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | recevieOrderDetails.Add(recevieOrderDetail); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | ERPReceiveModel receiveModel = new ERPReceiveModel() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Code = receiveOrder.ReceiveOrderNo, | 
|---|
|  |  |  | CompanyId = "", | 
|---|
|  |  |  | DeliveryCode = receiveOrder.DeliveryCode, | 
|---|
|  |  |  | CustomerId = receiveOrder.CustomerId, | 
|---|
|  |  |  | CreatorId = receiveOrder.CustomerId, | 
|---|
|  |  |  | EndDate = receiveOrder.CreateDate, | 
|---|
|  |  |  | ReceiveDate = receiveOrder.CreateDate, | 
|---|
|  |  |  | PlantsId = "", | 
|---|
|  |  |  | CreatorId = receiveOrder.Creater, | 
|---|
|  |  |  | EntDate = receiveOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"), | 
|---|
|  |  |  | ReceiveDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), | 
|---|
|  |  |  | SuppliersId = receiveOrder.SuppliersId, | 
|---|
|  |  |  | Type = "PO", | 
|---|
|  |  |  | Type = Enum.GetName(typeof(ReceiveOrderTypeEnum), receiveOrder.ReceiveOrderType) ?? throw new Exception($"éè´åç±»åé误"), | 
|---|
|  |  |  | UniqueTag = receiveOrder.ReceiveOrderId.ToString(), | 
|---|
|  |  |  | WarehouseCode = warehouse.WarehouseCode, | 
|---|
|  |  |  | Way = 1, | 
|---|
|  |  |  | Details = recevieOrderDetails | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | string response = _invokeERPService.InvokeMatReceiveApi(receiveModel); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //æ´æ°æ¶è´§åä¿¡æ¯ | 
|---|
|  |  |  | receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Completed.ObjToInt(); | 
|---|
|  |  |  | receiveOrder.UploadStatus = WhetherEnum.True.ObjToInt(); | 
|---|
|  |  |  | BaseDal.UpdateData(receiveOrder); | 
|---|
|  |  |  | //å建å
¥åºå | 
|---|
|  |  |  | CreateInboundOrder(orderId); | 
|---|
|  |  |  | //æ¶è´§æ¨éè³ERP æµè¯æ³¨é | 
|---|
|  |  |  | _invokeERPService.InvokeMatReceiveApi(receiveModel); | 
|---|
|  |  |  | return WebResponseContent.Instance.OK(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception ex) | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public WebResponseContent GetReceiveOrders(SaveModel saveModel) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | WebResponseContent content = new WebResponseContent(); | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  | int pageNo = saveModel.MainData["pageNo"].ObjToInt(); | 
|---|
|  |  |  | int warehouseId = saveModel.MainData["warehouseId"].ObjToInt(); | 
|---|
|  |  |  | string orderNo = saveModel.MainData["orderNo"].ToString(); | 
|---|
|  |  |  | List<Dt_ReceiveOrder> dt_ReceiveOrders = new List<Dt_ReceiveOrder>(); | 
|---|
|  |  |  | if (string.IsNullOrEmpty(orderNo)) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | dt_ReceiveOrders = Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderStatus < ReceiveOrderStatusEnum.Completed.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | dt_ReceiveOrders = Db.Queryable<Dt_ReceiveOrder>().Where(x => (x.ReceiveOrderNo.Contains(orderNo) || x.SuppliersId.Contains(orderNo)) && x.ReceiveOrderStatus < ReceiveOrderStatusEnum.Completed.ObjToInt() && x.WarehouseId == warehouseId).ToPageList(pageNo, 5); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | content.OK(data: dt_ReceiveOrders); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception) | 
|---|
|  |  |  | { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | throw; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return content; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /// <summary> | 
|---|
|  |  |  | /// å建å
¥åºå | 
|---|
|  |  |  | /// </summary> | 
|---|
|  |  |  | /// <param name="receiveOrderId">æ¶è´§åç¼å·</param> | 
|---|
|  |  |  | /// <returns></returns> | 
|---|
|  |  |  | public WebResponseContent CreateInboundOrder(int receiveOrderId) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | try | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"该æ¶è´§åæªå®æ"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | #region æ³¨é | 
|---|
|  |  |  | //List<Dt_CheckOrder> checkOrders = _checkOrderRepository.QueryData(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo); | 
|---|
|  |  |  | //if (checkOrders.FirstOrDefault(x => x.CheckOrderStatus == CheckOrderStatusEnum.NotCheck.ObjToInt()) != null) | 
|---|
|  |  |  | //{ | 
|---|
|  |  |  | //    return WebResponseContent.Instance.Error($"该æ¶è´§åæªè´¨æ£å®æ"); | 
|---|
|  |  |  | //} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Dt_CheckOrder> checkOrders = _checkOrderRepository.QueryData(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo); | 
|---|
|  |  |  | if (checkOrders.FirstOrDefault(x => x.CheckOrderStatus == CheckOrderStatusEnum.NotCheck.ObjToInt()) != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"该æ¶è´§åæªè´¨æ£å®æ"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"该æ¶è´§åè´¨æ£ç»æå®¡æ¹æªå®æ"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null) | 
|---|
|  |  |  | //{ | 
|---|
|  |  |  | //    return WebResponseContent.Instance.Error($"该æ¶è´§åè´¨æ£ç»æå®¡æ¹æªå®æ"); | 
|---|
|  |  |  | //} | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Dt_InboundOrder inboundOrder = new Dt_InboundOrder() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  | foreach (var item in receiveOrder.Details) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | float quantity = item.ReceivedQuantity; | 
|---|
|  |  |  | if (item.IfInspection == WhetherEnum.True.ObjToInt()) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo); | 
|---|
|  |  |  | if (checkOrder == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"è´¨æ£åæ°æ®é误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | #region æ³¨é | 
|---|
|  |  |  | //if (item.IfInspection == WhetherEnum.True.ObjToInt()) | 
|---|
|  |  |  | //{ | 
|---|
|  |  |  | //    Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo); | 
|---|
|  |  |  | //    if (checkOrder == null) | 
|---|
|  |  |  | //    { | 
|---|
|  |  |  | //        return WebResponseContent.Instance.Error($"è´¨æ£åæ°æ®é误"); | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  | //    quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault(); | 
|---|
|  |  |  | //} | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  | Dt_InboundOrderDetail detail = new Dt_InboundOrderDetail() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | MaterielCode = item.MaterielCode, | 
|---|
|  |  |  | 
|---|
|  |  |  | return WebResponseContent.Instance.Error(ex.Message); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public WebResponseContent ReceiveAllOrder(int purchaseOrderId, string lotNo) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().Where(x => x.Id == purchaseOrderId).Includes(x => x.Details).First(); | 
|---|
|  |  |  | if (purchaseOrder == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥éè´å"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (purchaseOrder.Details.Count == 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"æªæ¾å°éè´åæç»ä¿¡æ¯"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (purchaseOrder.PurchaseOrderStatus == PurchaseOrderStatusEnum.Received.ObjToInt()) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"å·²æ¶è´§å®æ"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (purchaseOrder.Details.FirstOrDefault(x => x.PurchaseDetailStatus == PurchaseOrderStatusEnum.NotReceived.ObjToInt()) == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"å·²æ¶è´§å®æ"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<Dt_CheckOrder> checkOrders = new List<Dt_CheckOrder>(); | 
|---|
|  |  |  | List<Dt_MaterielInfo> materielInfos = new List<Dt_MaterielInfo>(); | 
|---|
|  |  |  | List<Dt_ReceiveOrderDetail> receiveOrderDetails = new List<Dt_ReceiveOrderDetail>(); | 
|---|
|  |  |  | Dt_ReceiveOrder receiveOrder = BaseDal.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.SuppliersId == purchaseOrder.SupplierCode && x.ReceiveOrderStatus != ReceiveOrderStatusEnum.Completed.ObjToInt()).Includes(x => x.Details).First(); | 
|---|
|  |  |  | if (receiveOrder == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | int rowNo = 0; | 
|---|
|  |  |  | foreach (var item in purchaseOrder.Details) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode); | 
|---|
|  |  |  | if (materielInfo == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == item.MaterielCode); | 
|---|
|  |  |  | if (materielInfo == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ç©æçä¿¡æ¯"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | materielInfos.Add(materielInfo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Dt_ReceiveOrderDetail receiveOrderDetail = new Dt_ReceiveOrderDetail() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | PurchaseOrderNo = purchaseOrder.PurchaseOrderNo, | 
|---|
|  |  |  | ReceivedQuantity = item.PurchaseDetailQuantity, | 
|---|
|  |  |  | MaterielCode = item.MaterielCode, | 
|---|
|  |  |  | LotNo = lotNo, | 
|---|
|  |  |  | PurchaseOrderDetailRowNo = item.RowNo, | 
|---|
|  |  |  | IfInspection = materielInfo.IsCheck.ObjToInt(), | 
|---|
|  |  |  | CurrCode = "", | 
|---|
|  |  |  | PriceInTax = 0, | 
|---|
|  |  |  | TaxRate = "", | 
|---|
|  |  |  | RowNo = rowNo + 1, | 
|---|
|  |  |  | Unit = item.Unit | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | rowNo += 1; | 
|---|
|  |  |  | receiveOrderDetails.Add(receiveOrderDetail); | 
|---|
|  |  |  | #region æ³¨é | 
|---|
|  |  |  | //if (materielInfo.IsCheck == WhetherEnum.True) | 
|---|
|  |  |  | //{ | 
|---|
|  |  |  | //    Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); | 
|---|
|  |  |  | //    checkOrder.CheckOrderNo = "TestCheckNo21";//æµè¯ | 
|---|
|  |  |  | //    checkOrder.ReceiveOrderNo = ""; | 
|---|
|  |  |  | //    checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity; | 
|---|
|  |  |  | //    checkOrder.ScrappedQuantity = 0; | 
|---|
|  |  |  | //    checkOrder.ReturnQuantity = 0; | 
|---|
|  |  |  | //    checkOrder.DefectedQuantity = 0; | 
|---|
|  |  |  | //    checkOrder.ReceiveDetailRowNo = rowNo; | 
|---|
|  |  |  | //    checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt(); | 
|---|
|  |  |  | //    checkOrders.Add(checkOrder); | 
|---|
|  |  |  | //} | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  | } | 
|---|
|  |  |  | receiveOrder = new Dt_ReceiveOrder() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt(), | 
|---|
|  |  |  | CustomerId = "", | 
|---|
|  |  |  | DeliveryCode = "/", | 
|---|
|  |  |  | ReceiveDate = DateTime.Now, | 
|---|
|  |  |  | ReceiveOrderType = ReceiveOrderTypeEnum.PO.ObjToInt(), | 
|---|
|  |  |  | SuppliersId = purchaseOrder.SupplierCode, | 
|---|
|  |  |  | WarehouseId = purchaseOrder.Details.FirstOrDefault()?.WarehouseId ?? 0, | 
|---|
|  |  |  | UploadStatus = WhetherEnum.False.ObjToInt(), | 
|---|
|  |  |  | Details = receiveOrderDetails | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | int rowNo = receiveOrder.Details.Count > 0 ? receiveOrder.Details.Max(x => x.RowNo) : 0; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | foreach (var item in purchaseOrder.Details) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterielCode); | 
|---|
|  |  |  | if (materielInfo == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == item.MaterielCode); | 
|---|
|  |  |  | if (materielInfo == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ç©æçä¿¡æ¯"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | materielInfos.Add(materielInfo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Dt_ReceiveOrderDetail receiveOrderDetail = new Dt_ReceiveOrderDetail() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | PurchaseOrderNo = purchaseOrder.PurchaseOrderNo, | 
|---|
|  |  |  | ReceivedQuantity = item.PurchaseDetailQuantity, | 
|---|
|  |  |  | MaterielCode = item.MaterielCode, | 
|---|
|  |  |  | LotNo = lotNo, | 
|---|
|  |  |  | ReceiveOrderId = receiveOrder.ReceiveOrderId, | 
|---|
|  |  |  | PurchaseOrderDetailRowNo = item.RowNo, | 
|---|
|  |  |  | IfInspection = materielInfo.IsCheck.ObjToInt(), | 
|---|
|  |  |  | CurrCode = "", | 
|---|
|  |  |  | PriceInTax = 0, | 
|---|
|  |  |  | TaxRate = "", | 
|---|
|  |  |  | RowNo = rowNo + 1, | 
|---|
|  |  |  | Unit = item.Unit, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | rowNo += 1; | 
|---|
|  |  |  | receiveOrderDetails.Add(receiveOrderDetail); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //if (materielInfo.IsCheck == WhetherEnum.True) | 
|---|
|  |  |  | //{ | 
|---|
|  |  |  | //    Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail); | 
|---|
|  |  |  | //    checkOrder.CheckOrderNo = "Test-CheckNo1";//æµè¯ | 
|---|
|  |  |  | //    checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity; | 
|---|
|  |  |  | //    checkOrder.ScrappedQuantity = 0; | 
|---|
|  |  |  | //    checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo; | 
|---|
|  |  |  | //    checkOrder.ReturnQuantity = 0; | 
|---|
|  |  |  | //    checkOrder.DefectedQuantity = 0; | 
|---|
|  |  |  | //    checkOrder.ReceiveDetailRowNo = rowNo; | 
|---|
|  |  |  | //    checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt(); | 
|---|
|  |  |  | //    checkOrders.Add(checkOrder); | 
|---|
|  |  |  | //} | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | purchaseOrder.Details.ForEach(x => x.PurchaseDetailStatus = PurchaseOrderStatusEnum.Received.ObjToInt()); | 
|---|
|  |  |  | purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Received.ObjToInt(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | _unitOfWorkManage.BeginTran(); | 
|---|
|  |  |  | if (receiveOrder.ReceiveOrderId > 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Db.Insertable(receiveOrderDetails).ExecuteCommand(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Db.InsertNav(receiveOrder).Include(x => x.Details).ExecuteCommand(); | 
|---|
|  |  |  | checkOrders.ForEach(x => x.ReceiveOrderNo = receiveOrder.ReceiveOrderNo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //if (checkOrders.Count > 0) | 
|---|
|  |  |  | //{ | 
|---|
|  |  |  | //    _checkOrderRepository.AddData(checkOrders); | 
|---|
|  |  |  | //} | 
|---|
|  |  |  | _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder); | 
|---|
|  |  |  | _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrder.Details); | 
|---|
|  |  |  | _unitOfWorkManage.CommitTran(); | 
|---|
|  |  |  | return WebResponseContent.Instance.OK(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception ex) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | _unitOfWorkManage.RollbackTran(); | 
|---|
|  |  |  | return WebResponseContent.Instance.Error(ex.Message); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|