|  |  |  | 
|---|
|  |  |  | _supplierInfoRepository = supplierInfoRepository; | 
|---|
|  |  |  | _materielInfoRepository = materielInfoRepository; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public WebResponseContent GetPurchaseOrderInfo(string purchaseOrderNo) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Dt_PurchaseOrder purchaseOrder = BaseDal.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == purchaseOrderNo).Includes(x => x.Details).First(); | 
|---|
|  |  |  | List<string> MaterielCodes = purchaseOrder.Details.Where(x => x.PurchaseDetailStatus != PurchaseOrderDetailStatusEnum.Received.ObjToInt()).Select(x => x.MaterielCode).ToList(); | 
|---|
|  |  |  | return WebResponseContent.Instance.OK(data: MaterielCodes); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception ex) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error(ex.Message); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | public WebResponseContent ReceivePurchaseOrder(PurchaseOrderModel model) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | try | 
|---|
|  |  |  | 
|---|
|  |  |  | Dt_PurchaseOrderDetail purchaseOrderDetail = new Dt_PurchaseOrderDetail() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | MaterielCode = item.MCode, | 
|---|
|  |  |  | MaterielName = materielInfo.MaterielName, | 
|---|
|  |  |  | MaterielSpec = materielInfo.MaterielSpec, | 
|---|
|  |  |  | PurchaseDetailQuantity = item.Qty, | 
|---|
|  |  |  | PurchaseDetailReceiveQty=0, | 
|---|
|  |  |  | PurchaseDetailReceiveQty = 0, | 
|---|
|  |  |  | PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt(), | 
|---|
|  |  |  | Unit = item.Unit, | 
|---|
|  |  |  | WarehouseId = warehouse.WarehouseId, | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().First(x => x.PurchaseOrderNo == model.OrderNo); | 
|---|
|  |  |  | Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.OrderNo).Includes(x => x.Details).First(); | 
|---|
|  |  |  | if (purchaseOrder == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟淇℃伅"); | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().First(x => x.PurchaseOrderNo == model.OrderNo); | 
|---|
|  |  |  | Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.OrderNo).Includes(x => x.Details).First(); | 
|---|
|  |  |  | if (purchaseOrder == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟淇℃伅"); | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().First(x => x.PurchaseOrderNo == model.OrderNo); | 
|---|
|  |  |  | Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().Where(x=>x.PurchaseOrderNo== model.OrderNo).Includes(x=>x.Details).First(); | 
|---|
|  |  |  | if (purchaseOrder == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟淇℃伅"); | 
|---|
|  |  |  | 
|---|
|  |  |  | { | 
|---|
|  |  |  | return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟鏄庣粏淇℃伅"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Closed.ObjToInt(); | 
|---|
|  |  |  | _unitOfWorkManage.BeginTran(); | 
|---|
|  |  |  | BaseDal.DeleteAndMoveIntoHty(purchaseOrder, OperateTypeEnum.鍏抽棴); | 
|---|
|  |  |  | BaseDal.UpdateData(purchaseOrder); | 
|---|
|  |  |  | //BaseDal.DeleteAndMoveIntoHty(purchaseOrder, OperateTypeEnum.鍏抽棴); | 
|---|
|  |  |  | foreach (var item in purchaseOrder.Details) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | _purchaseOrderDetailRepository.DeleteAndMoveIntoHty(item, OperateTypeEnum.鍏抽棴); | 
|---|
|  |  |  | item.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Closed.ObjToInt(); | 
|---|
|  |  |  | //_purchaseOrderDetailRepository.DeleteAndMoveIntoHty(item, OperateTypeEnum.鍏抽棴); | 
|---|
|  |  |  | _purchaseOrderDetailRepository.UpdateData(item); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | _unitOfWorkManage.CommitTran(); | 
|---|
|  |  |  | return WebResponseContent.Instance.OK(); | 
|---|