| | |
| | | { |
| | | public class InventoryServices : ServiceBase<Dt_Inventory, IRepository<Dt_Inventory>>, IInventoryServices |
| | | { |
| | | public InventoryServices(IRepository<Dt_Inventory> BaseDal) : base(BaseDal) |
| | | private readonly IDeliveryOrderServices _deliveryOrderServices; |
| | | public InventoryServices(IRepository<Dt_Inventory> BaseDal, IDeliveryOrderServices deliveryOrderServices) : base(BaseDal) |
| | | { |
| | | _deliveryOrderServices = deliveryOrderServices; |
| | | } |
| | | |
| | | |
| | |
| | | try |
| | | { |
| | | var url = "http://121.37.118.63/GYZ2/95fck/repositoryInfo"; |
| | | // åèµ·è¯·æ± |
| | | var result = HttpHelper.Post(url, new { goods_no,batch_num}.ToJsonString()); |
| | | var result = HttpHelper.Post(url, new { goods_no, batch_num }.ToJsonString()); |
| | | |
| | | // ååºåå |
| | | var response = JsonConvert.DeserializeObject<UpstreamResponse<InventoryInfo>>(result); |
| | | |
| | | if (response.resultCode!="0") |
| | | if (response.resultCode != "0") |
| | | { |
| | | // è°ç¨å¼å¸¸æ¥å£ |
| | | SendErrorToUpstream(8, "", response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败", ""); |
| | | return responseContent.Error(response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败"); |
| | | } |
| | | |
| | | if (response.data == null || !response.data.Any()) |
| | | { |
| | | return responseContent.OK("æ æ°åºåæ°æ®"); |
| | | } |
| | | |
| | | Db.Ado.BeginTran(); |
| | | foreach (var item in response.data) |
| | | { |
| | | var Inver = new Dt_Inventory |
| | | { |
| | | Goods_no = item.goods_no, |
| | | Batch_num = item.batch_num, |
| | | Exp_date=item.exp_date, |
| | | Business_qty = item.business_qty, |
| | | Actual_qty = item.actural_qty, |
| | | }; |
| | | AddData(Inver); |
| | | // ä½¿ç¨ FirstOrDefault é¿å
æ¾ä¸å°è®°å½æ¶æåºå¼å¸¸ |
| | | var Inver = Db.Queryable<Dt_Inventory_Batch>() |
| | | .First(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num); |
| | | |
| | | if (Inver != null) |
| | | { |
| | | Inver.ERPStockQuantity = item.business_qty; |
| | | Db.Updateable(Inver).ExecuteCommand(); |
| | | } |
| | | } |
| | | Db.Ado.CommitTran(); |
| | | return responseContent.OK("åºåä¿¡æ¯åæ¥å®æ"); |
| | |
| | | { |
| | | return new ApiResponse<Dt_InventoryInfo> { code = "500", msg = "请æ±åæ°æ æ" }; |
| | | } |
| | | |
| | | // 2ï¸â£ å¼å¯äºå¡ |
| | | BaseDal.Db.Ado.BeginTran(); |
| | | |
| | | |
| | | foreach (var detail in request.details) |
| | | { |
| | | var goods = Db.Queryable<Dt_MaterielInfo>().Where(x => x.MaterielCode == detail.productCode).First(); |
| | | |
| | | // 3ï¸â£ 计ç®å
¥åºæ°éï¼åæ£ï¼ |
| | | decimal orderQty = detail.orderDetails? |
| | | .Sum(x => decimal.TryParse(x.quantity, out var q) ? Math.Abs(q) : 0) |
| | |
| | | |
| | | // 5ï¸â£ æ¥è¯¢åºå详æ
|
| | | var entity = BaseDal.Db.Queryable<Dt_InventoryInfo>() |
| | | .First(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo); |
| | | .First(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo&&x.LocationCode=="ç«åº"); |
| | | //æ¥è¯¢ç©æè¡¨ |
| | | var Goods = BaseDal.Db.Queryable<Dt_MaterielInfo>().First(x => x.MaterielCode == detail.productCode); |
| | | |
| | | if (entity == null) |
| | | { |
| | |
| | | { |
| | | PalletCode = detail.orderDetails?.FirstOrDefault()?.palletCode ?? "", |
| | | WarehouseCode = "001", |
| | | LocationCode = "", |
| | | LocationCode = "ç«åº", |
| | | StockStatus = 1, |
| | | MaterielCode = detail.productCode ?? detail.productName, |
| | | MaterielName = detail.productName ?? "", |
| | |
| | | entity.StockQuantity += orderQty; |
| | | entity.InDate = DateTime.Now; |
| | | entity.Remark = "å
¥åºååä¼ "; |
| | | //Goods.Business_qty= |
| | | |
| | | batch.StockQuantity += orderQty; |
| | | batch.Remark = "å
¥åºååä¼ "; |
| | | break; |
| | | |
| | | case "2": // åºåº |
| | | entity.OutboundQuantity += orderQty; |
| | | entity.OutboundQuantity += orderQty; //åºåºæ°é |
| | | entity.StockQuantity -= orderQty; |
| | | if (entity.StockQuantity < 0) entity.StockQuantity = 0; |
| | | entity.Remark = "åºåºååä¼ "; |
| | | |
| | | //CreateAllocatInOut() |
| | | batch.OutboundQuantity += orderQty; |
| | | batch.StockQuantity -= orderQty; |
| | | if (batch.StockQuantity < 0) batch.StockQuantity = 0; |
| | | batch.Remark = "åºåºååä¼ "; |
| | | //è°æ¨ä»»å¡ |
| | | _deliveryOrderServices.CreateAllocatInOut(goods); |
| | | |
| | | |
| | | break; |
| | | |
| | | case "3": // çç¹ |
| | |
| | | } |
| | | break; |
| | | } |
| | | |
| | | // 2ï¸â£ å¼å¯äºå¡ |
| | | BaseDal.Db.Ado.BeginTran(); |
| | | // 8ï¸â£ ä¿åæ°æ® |
| | | if (entity.Id == 0) |
| | | BaseDal.Db.Insertable(entity).ExecuteCommand(); |