| | |
| | | #endregion |
| | | |
| | | #region å建çäºåºåºå |
| | | //public WebResponseContent CreateCheckOutOrder(UpstramOutOrderInfo order) |
| | | //{ |
| | | // WebResponseContent content = new WebResponseContent(); |
| | | // try |
| | | // { |
| | | // string WareCodeMJ = WarehouseEnum.麻精åº.ObjToInt().ToString("000"); |
| | | // string WareCodeLD = WarehouseEnum.å·å»åº.ObjToInt().ToString("000"); |
| | | // List<Dt_SupplyTask_Hty> supplyTask_Hties = new List<Dt_SupplyTask_Hty>(); |
| | | // List<Dt_Inventory_Batch> batchesUp = new List<Dt_Inventory_Batch>(); |
| | | // List<Dt_InventoryInfo> infosUp = new List<Dt_InventoryInfo>(); |
| | | // var codes = order.details.Select(x => x.goods_no).ToList(); |
| | | // #region ç¹æ®åºæ¿ |
| | | // if (order.warehouse_no == WareCodeMJ || order.warehouse_no == WareCodeLD) |
| | | // { |
| | | // List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList(); |
| | | // List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList(); |
| | | // #region åºåãåºåæ¹æ¬¡å¹³è´¦ |
| | | // foreach (var item in order.details) |
| | | // { |
| | | // //æ¾åºåæ¹æ¬¡ä¿¡æ¯ |
| | | // Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First(); |
| | | // var Qty = Math.Abs(inventory_Batch.SupplyQuantity); |
| | | // if (Qty != item.order_qty) |
| | | // { |
| | | // _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "ERPæ¥æåºåºé误", $"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); |
| | | // throw new Exception($"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); |
| | | // } |
| | | // //æ¾ææåºå |
| | | // List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList(); |
| | | // foreach (var inventoryInfo in inventoryInfos) |
| | | // { |
| | | // #region æ·»å çäºåºåºä»»å¡ |
| | | // if (inventoryInfo.StockQuantity != inventoryInfo.SupplyQuantity) |
| | | // { |
| | | // Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty() |
| | | // { |
| | | // WarehouseCode = inventoryInfo.WarehouseCode, |
| | | // OperateType = OperateTypeEnum.èªå¨å®æ.ToString(), |
| | | // InsertTime = DateTime.Now, |
| | | // TaskStatus = SupplyStatusEnum.OutFinish.ObjToInt(), |
| | | // BatchNo = inventoryInfo.BatchNo, |
| | | // MaterielName = inventoryInfo.MaterielName, |
| | | // MaterielCode = inventoryInfo.MaterielCode, |
| | | // MaterielSpec = inventoryInfo.MaterielSpec, |
| | | // TaskType = TaskTypeEnum.ChenckOut.ObjToInt(), |
| | | // CreateDate = DateTime.Now, |
| | | // Creater = App.User.UserName, |
| | | // LocationCode = inventoryInfo.LocationCode, |
| | | // OrderNo = order.order_no, |
| | | // StockQuantity = Math.Abs(inventoryInfo.SupplyQuantity), |
| | | // SupplyQuantity = 0, |
| | | // Remark = "çäºå
¥åº" |
| | | // }; |
| | | // //_supplyTaskHtyService.AddData(supplyTask_Hty); |
| | | // supplyTask_Hties.Add(supplyTask_Hty); |
| | | // } |
| | | // #endregion |
| | | // inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity; |
| | | // inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity; |
| | | // inventoryInfo.SupplyQuantity = 0; |
| | | // inventoryInfo.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | // // æ£æ¥åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ |
| | | |
| | | // } |
| | | // inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity; |
| | | // inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity; |
| | | // inventory_Batch.SupplyQuantity = 0; |
| | | // infosUp.AddRange(inventoryInfos); |
| | | // batchesUp.Add(inventory_Batch); |
| | | // // æ£æ¥æ¹æ¬¡åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ |
| | | |
| | | // //_inventoryInfoService.UpdateData(inventoryInfos); |
| | | // //_inventory_BatchServices.UpdateData(inventory_Batch); |
| | | // } |
| | | // #endregion |
| | | |
| | | // #region å建çç¹å |
| | | // var entityOrder = new Dt_DeliveryOrder |
| | | // { |
| | | // Out_no = order.order_no, |
| | | // Out_type = order.order_type, |
| | | // Client_no = order.client_no, |
| | | // Client_name = order.client_name, |
| | | // OutStatus = "已宿", |
| | | // Account_time = order.account_time, |
| | | // Warehouse_no = order.warehouse_no, |
| | | // Details = order.details.Select(d => new Dt_DeliveryOrderDetail |
| | | // { |
| | | // Goods_no = d.goods_no, |
| | | // Order_qty = Math.Abs(d.order_qty), |
| | | // Order_Outqty = Math.Abs(d.order_qty), |
| | | // Batch_num = d.batch_num, |
| | | // Exp_date = d.exp_date, |
| | | // Reservoirarea = order.warehouse_no, |
| | | // OotDetailStatus = "已宿", |
| | | // Status = 2, |
| | | // }).ToList() |
| | | // }; |
| | | // _unitOfWorkManage.BeginTran(); |
| | | // _supplyTaskHtyService.AddData(supplyTask_Hties); |
| | | // _inventoryInfoService.UpdateData(infosUp); |
| | | // _inventory_BatchServices.UpdateData(batchesUp); |
| | | // //BaseDal.Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); |
| | | // _unitOfWorkManage.CommitTran(); |
| | | // #endregion |
| | | // } |
| | | // #endregion |
| | | // else |
| | | // { |
| | | // List<Dt_DeliveryOrder> deliveryOrdersAdd = new List<Dt_DeliveryOrder>(); |
| | | // string WareCodeLK = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); |
| | | // string WareCodeDJ = WarehouseEnum.大件åº.ObjToInt().ToString("000"); |
| | | // List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)); |
| | | // List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)); |
| | | // foreach (var item in order.details) |
| | | // { |
| | | // //æ¾åºåæ¹æ¬¡ä¿¡æ¯ |
| | | // Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First(); |
| | | // var Qty = Math.Abs(inventory_Batch.SupplyQuantity); |
| | | // if (Qty != item.order_qty) |
| | | // { |
| | | // _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "ERPæ¥æåºåºé误", $"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); |
| | | // throw new Exception($"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); |
| | | // } |
| | | // //æ¾ææåºå |
| | | // List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList(); |
| | | // //è·åç«åºçç¹å·®å¼æ° |
| | | // var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).First(); |
| | | // //var LkQty = Math.Abs(inventoryLK.SupplyQuantity); |
| | | // var LkQty = inventoryLK.SupplyQuantity; |
| | | // //è·å大件åºçç¹å·®å¼æ° |
| | | // var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList(); |
| | | // //var DJQty = Math.Abs(inventoryDJ.Sum(x => x.SupplyQuantity)); |
| | | // var DJQty = inventoryDJ.Sum(x => x.SupplyQuantity); |
| | | // var count = Math.Abs(LkQty + DJQty); |
| | | // if (count != Qty) { |
| | | // _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "ERPæ¥æåºåºé误", $"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); |
| | | // throw new Exception($"ã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçç©æä¿¡æ¯ä¸ç©ææ¹æ¬¡ä¿¡æ¯çäºæ°éä¸ç¬¦"); |
| | | // } |
| | | // if (LkQty == 0)//ç«åºæ çç¹å·®å¼ï¼åªæå¤§ä»¶åºæå·®å¼ |
| | | // { |
| | | // #region åºåãåºåæ¹æ¬¡å¹³è´¦ |
| | | // foreach (var inventoryInfo in inventoryInfos) |
| | | // { |
| | | // #region æ·»å çäºåºåºä»»å¡ |
| | | // if (inventoryInfo.StockQuantity != inventoryInfo.SupplyQuantity) |
| | | // { |
| | | // Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty() |
| | | // { |
| | | // WarehouseCode = inventoryInfo.WarehouseCode, |
| | | // OperateType = OperateTypeEnum.èªå¨å®æ.ToString(), |
| | | // InsertTime = DateTime.Now, |
| | | // TaskStatus = SupplyStatusEnum.OutFinish.ObjToInt(), |
| | | // BatchNo = inventoryInfo.BatchNo, |
| | | // MaterielName = inventoryInfo.MaterielName, |
| | | // MaterielCode = inventoryInfo.MaterielCode, |
| | | // MaterielSpec = inventoryInfo.MaterielSpec, |
| | | // TaskType = TaskTypeEnum.ChenckOut.ObjToInt(), |
| | | // CreateDate = DateTime.Now, |
| | | // Creater = App.User.UserName, |
| | | // LocationCode = inventoryInfo.LocationCode, |
| | | // OrderNo = order.order_no, |
| | | // StockQuantity = Math.Abs(inventoryInfo.SupplyQuantity), |
| | | // SupplyQuantity = 0, |
| | | // Remark = "çäºå
¥åº" |
| | | // }; |
| | | // //_supplyTaskHtyService.AddData(supplyTask_Hty); |
| | | // supplyTask_Hties.Add(supplyTask_Hty); |
| | | // } |
| | | // #endregion |
| | | // // æ´æ°åºåä¿¡æ¯ |
| | | // inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity; |
| | | // inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity; |
| | | // inventoryInfo.SupplyQuantity = 0; |
| | | // inventoryInfo.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | // // æ£æ¥åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ |
| | | |
| | | // } |
| | | // //æ´æ°æ¹æ¬¡ä¿¡æ¯ |
| | | // //_inventoryInfoService.UpdateData(inventoryInfos); |
| | | // inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity; |
| | | // inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity; |
| | | // inventory_Batch.SupplyQuantity = 0; |
| | | // //_inventory_BatchServices.UpdateData(inventory_Batch); |
| | | // infosUp.AddRange(inventoryInfos); |
| | | // batchesUp.Add(inventory_Batch); |
| | | // #endregion |
| | | |
| | | // #region å建大件åºçç¹å |
| | | // var entityOrder = new Dt_DeliveryOrder |
| | | // { |
| | | // Out_no = order.order_no, |
| | | // Out_type = order.order_type, |
| | | // Client_no = order.client_no, |
| | | // Account_time = order.account_time, |
| | | // OutStatus = "已宿", |
| | | // Client_name = order.client_name, |
| | | // Warehouse_no = WareCodeDJ, |
| | | // Details = order.details.Select(d => new Dt_DeliveryOrderDetail |
| | | // { |
| | | // Goods_no = d.goods_no, |
| | | // Order_qty = Math.Abs(d.order_qty), |
| | | // Order_Outqty = Math.Abs(d.order_qty), |
| | | // Batch_num = d.batch_num, |
| | | // Exp_date = d.exp_date, |
| | | // Reservoirarea = WareCodeDJ, |
| | | // OotDetailStatus = "已宿", |
| | | // Status = 2, |
| | | // }).ToList() |
| | | // }; |
| | | // //Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); |
| | | // //Repository.AddData(entityOrder); |
| | | // deliveryOrdersAdd.Add(entityOrder); |
| | | // #endregion |
| | | // } |
| | | // else //ç«åºæçç¹å·®å¼ï¼éè¦åºåºï¼ï¼å¤§ä»¶åºå¯è½æææ²¡æå·®å¼ |
| | | // { |
| | | // #region 大件åºåºå平账 |
| | | // inventoryInfos = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList(); |
| | | // foreach (var inventoryInfo in inventoryInfos) |
| | | // { |
| | | // #region æ·»å çäºåºåºä»»å¡ |
| | | // if (inventoryInfo.StockQuantity != inventoryInfo.SupplyQuantity) |
| | | // { |
| | | // Dt_SupplyTask_Hty supplyTask_Hty = new Dt_SupplyTask_Hty() |
| | | // { |
| | | // WarehouseCode = inventoryInfo.WarehouseCode, |
| | | // OperateType = OperateTypeEnum.èªå¨å®æ.ToString(), |
| | | // InsertTime = DateTime.Now, |
| | | // TaskStatus = SupplyStatusEnum.OutFinish.ObjToInt(), |
| | | // BatchNo = inventoryInfo.BatchNo, |
| | | // MaterielName = inventoryInfo.MaterielName, |
| | | // MaterielCode = inventoryInfo.MaterielCode, |
| | | // MaterielSpec = inventoryInfo.MaterielSpec, |
| | | // TaskType = TaskTypeEnum.ChenckOut.ObjToInt(), |
| | | // CreateDate = DateTime.Now, |
| | | // Creater = App.User.UserName, |
| | | // LocationCode = inventoryInfo.LocationCode, |
| | | // OrderNo = order.order_no, |
| | | // StockQuantity = Math.Abs(inventoryInfo.SupplyQuantity), |
| | | // SupplyQuantity = 0, |
| | | // Remark = "çäºåºåº" |
| | | // }; |
| | | // //_supplyTaskHtyService.AddData(supplyTask_Hty); |
| | | // supplyTask_Hties.Add(supplyTask_Hty); |
| | | // } |
| | | // #endregion |
| | | // inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity; |
| | | // inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity; |
| | | // inventoryInfo.SupplyQuantity = 0; |
| | | // inventoryInfo.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | // } |
| | | // //_inventoryInfoService.UpdateData(inventoryInfos); |
| | | // infosUp.AddRange(inventoryInfos); |
| | | // #endregion |
| | | |
| | | // #region å建大件åºçç¹å |
| | | // if (DJQty != 0) |
| | | // { |
| | | // var cabinOrder = new Dt_DeliveryOrder |
| | | // { |
| | | // Out_no = order.order_no, |
| | | // Out_type = order.order_type, |
| | | // Client_name = order.client_name, |
| | | // Account_time = order.account_time, |
| | | // OutStatus = "已宿", |
| | | // Client_no = order.client_no, |
| | | // Warehouse_no = WareCodeDJ, |
| | | // Details = order.details.Select(d => new Dt_DeliveryOrderDetail |
| | | // { |
| | | // Goods_no = d.goods_no, |
| | | // Order_qty = DJQty, |
| | | // Order_Outqty = DJQty, |
| | | // Batch_num = d.batch_num, |
| | | // Exp_date = d.exp_date, |
| | | // Reservoirarea = WareCodeDJ, |
| | | // OotDetailStatus = "已宿", |
| | | // Status = 2, |
| | | // }).ToList() |
| | | // }; |
| | | // //Repository.AddData(cabinOrder); |
| | | // //Db.InsertNav(cabinOrder).Include(it => it.Details).ExecuteCommand(); |
| | | // deliveryOrdersAdd.Add(cabinOrder); |
| | | // } |
| | | // #endregion |
| | | // //è¿é |
| | | // #region å建ç«åºçç¹å |
| | | // var entityOrder = new Dt_DeliveryOrder |
| | | // { |
| | | // Out_no = order.order_no, |
| | | // Out_type = order.order_type, |
| | | // Client_no = order.client_no, |
| | | // Account_time = order.account_time, |
| | | // OutStatus = "æ°å»º", |
| | | // Client_name = order.client_name, |
| | | // Warehouse_no = WareCodeLK, |
| | | // Details = order.details.Select(d => new Dt_DeliveryOrderDetail |
| | | // { |
| | | // Goods_no = d.goods_no, |
| | | // Order_qty = Math.Abs(LkQty), //ç»ä¸æ¸¸WCSçæ¯è¦æ´æ° |
| | | // Batch_num = d.batch_num, |
| | | // Exp_date = d.exp_date, |
| | | // Reservoirarea = WareCodeLK, |
| | | // OotDetailStatus = "æ°å»º", |
| | | // Status = 0, |
| | | // }).ToList() |
| | | // }; |
| | | // //Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); |
| | | // //Repository.AddData(entityOrder); |
| | | // deliveryOrdersAdd.Add(entityOrder); |
| | | // #endregion |
| | | // } |
| | | // //return WebResponseContent.Instance.OK("æå"); |
| | | // } |
| | | // _unitOfWorkManage.BeginTran(); |
| | | // _supplyTaskHtyService.AddData(supplyTask_Hties); |
| | | // _inventoryInfoService.UpdateData(infosUp); |
| | | // _inventory_BatchServices.UpdateData(batchesUp); |
| | | // BaseDal.Db.InsertNav(deliveryOrdersAdd).Include(it => it.Details).ExecuteCommand(); |
| | | // _unitOfWorkManage.CommitTran(); |
| | | // } |
| | | // return WebResponseContent.Instance.OK("æå"); |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // _unitOfWorkManage.RollbackTran(); |
| | | // content.Error(ex.Message); |
| | | // } |
| | | // return content; |
| | | //} |
| | | #endregion |
| | | |
| | | |
| | | #region å建çäºåºåºå ï¼æ·»å å é¤åºå为0çæ
åµï¼ |
| | | public WebResponseContent CreateCheckOutOrder(UpstramOutOrderInfo order) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | |
| | | string WareCodeLD = WarehouseEnum.å·å»åº.ObjToInt().ToString("000"); |
| | | List<Dt_SupplyTask_Hty> supplyTask_Hties = new List<Dt_SupplyTask_Hty>(); |
| | | List<Dt_Inventory_Batch> batchesUp = new List<Dt_Inventory_Batch>(); |
| | | List<Dt_Inventory_Batch> batchesDel = new List<Dt_Inventory_Batch>();//å é¤ |
| | | List<Dt_InventoryInfo> infosUp = new List<Dt_InventoryInfo>(); |
| | | List<Dt_InventoryInfo> infosDel = new List<Dt_InventoryInfo>();//å é¤ |
| | | var codes = order.details.Select(x => x.goods_no).ToList(); |
| | | |
| | | #region ç¹æ®åºæ¿ |
| | | if (order.warehouse_no == WareCodeMJ || order.warehouse_no == WareCodeLD) |
| | | { |
| | | List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)); |
| | | List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)); |
| | | List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList(); |
| | | List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList(); |
| | | |
| | | #region åºåãåºåæ¹æ¬¡å¹³è´¦ |
| | | foreach (var item in order.details) |
| | | { |
| | | //æ¾åºåæ¹æ¬¡ä¿¡æ¯ |
| | | Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First(); |
| | | var Qty = Math.Abs(inventory_Batch.SupplyQuantity); |
| | | if (Qty != item.order_qty) throw new Exception($"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); |
| | | if (Qty != item.order_qty) |
| | | { |
| | | _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "ERPæ¥æåºåºé误", $"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); |
| | | throw new Exception($"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); |
| | | } |
| | | |
| | | //æ¾ææåºå |
| | | List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList(); |
| | | foreach (var inventoryInfo in inventoryInfos) |
| | |
| | | SupplyQuantity = 0, |
| | | Remark = "çäºå
¥åº" |
| | | }; |
| | | //_supplyTaskHtyService.AddData(supplyTask_Hty); |
| | | supplyTask_Hties.Add(supplyTask_Hty); |
| | | } |
| | | #endregion |
| | | |
| | | inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity; |
| | | inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity; |
| | | inventoryInfo.SupplyQuantity = 0; |
| | | inventoryInfo.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | |
| | | // æ£æ¥åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ |
| | | if (inventoryInfo.StockQuantity <= 0) |
| | | infosDel.Add(inventoryInfo); |
| | | else |
| | | infosUp.Add(inventoryInfo); |
| | | } |
| | | |
| | | inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity; |
| | | inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity; |
| | | inventory_Batch.SupplyQuantity = 0; |
| | | infosUp.AddRange(inventoryInfos); |
| | | batchesUp.Add(inventory_Batch); |
| | | //_inventoryInfoService.UpdateData(inventoryInfos); |
| | | //_inventory_BatchServices.UpdateData(inventory_Batch); |
| | | |
| | | // æ£æ¥æ¹æ¬¡åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ |
| | | if (inventory_Batch.StockQuantity <= 0) |
| | | batchesDel.Add(inventory_Batch); |
| | | else |
| | | batchesUp.Add(inventory_Batch); |
| | | } |
| | | #endregion |
| | | |
| | |
| | | Status = 2, |
| | | }).ToList() |
| | | }; |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | _supplyTaskHtyService.AddData(supplyTask_Hties); |
| | | _inventoryInfoService.UpdateData(infosUp); |
| | | _inventory_BatchServices.UpdateData(batchesUp); |
| | | |
| | | if (infosUp.Any()) |
| | | _inventoryInfoService.UpdateData(infosUp); |
| | | if (infosDel.Any()) |
| | | _inventoryInfoService.DeleteData(infosDel); |
| | | if (batchesUp.Any()) |
| | | _inventory_BatchServices.UpdateData(batchesUp); |
| | | if (batchesDel.Any()) |
| | | _inventory_BatchServices.DeleteData(batchesDel); |
| | | |
| | | BaseDal.Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); |
| | | _unitOfWorkManage.CommitTran(); |
| | | #endregion |
| | |
| | | string WareCodeDJ = WarehouseEnum.大件åº.ObjToInt().ToString("000"); |
| | | List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)); |
| | | List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)); |
| | | |
| | | foreach (var item in order.details) |
| | | { |
| | | //æ¾åºåæ¹æ¬¡ä¿¡æ¯ |
| | | Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First(); |
| | | var Qty = Math.Abs(inventory_Batch.SupplyQuantity); |
| | | if (Qty != item.order_qty) throw new Exception($"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); |
| | | if (Qty != item.order_qty) |
| | | { |
| | | _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "ERPæ¥æåºåºé误", $"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); |
| | | throw new Exception($"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); |
| | | } |
| | | |
| | | //æ¾ææåºå |
| | | List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList(); |
| | | //è·åç«åºçç¹å·®å¼æ°.ãããããããããããã |
| | | //è·åç«åºçç¹å·®å¼æ° |
| | | var inventoryLK = inventoryInfos.Where(x => x.WarehouseCode == WareCodeLK).First(); |
| | | //var LkQty = Math.Abs(inventoryLK.SupplyQuantity); |
| | | var LkQty = inventoryLK.SupplyQuantity; |
| | | //è·å大件åºçç¹å·®å¼æ° |
| | | var inventoryDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList(); |
| | | //var DJQty = Math.Abs(inventoryDJ.Sum(x => x.SupplyQuantity)); |
| | | var DJQty = inventoryDJ.Sum(x => x.SupplyQuantity); |
| | | var count = Math.Abs(LkQty + DJQty); |
| | | if (count != Qty) throw new Exception($"ã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçç©æä¿¡æ¯ä¸ç©ææ¹æ¬¡ä¿¡æ¯çäºæ°éä¸ç¬¦"); |
| | | if (LkQty == 0)//ç«åºæ å·®å¼ |
| | | |
| | | if (count != Qty) |
| | | { |
| | | _messageInfoService.AddMessageInfo(MessageGroupByEnum.OutOrderAlarm, "ERPæ¥æåºåºé误", $"çäºåºåºåã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãççäºæ°éæè¯¯"); |
| | | throw new Exception($"ã{order.order_no}ãç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãçç©æä¿¡æ¯ä¸ç©ææ¹æ¬¡ä¿¡æ¯çäºæ°éä¸ç¬¦"); |
| | | } |
| | | |
| | | if (LkQty == 0)//ç«åºæ çç¹å·®å¼ï¼åªæå¤§ä»¶åºæå·®å¼ |
| | | { |
| | | #region åºåãåºåæ¹æ¬¡å¹³è´¦ |
| | | foreach (var inventoryInfo in inventoryInfos) |
| | |
| | | SupplyQuantity = 0, |
| | | Remark = "çäºå
¥åº" |
| | | }; |
| | | //_supplyTaskHtyService.AddData(supplyTask_Hty); |
| | | supplyTask_Hties.Add(supplyTask_Hty); |
| | | } |
| | | #endregion |
| | | |
| | | // æ´æ°åºåä¿¡æ¯ |
| | | inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity; |
| | | inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity; |
| | | inventoryInfo.SupplyQuantity = 0; |
| | | inventoryInfo.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | |
| | | // æ£æ¥åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ |
| | | if (inventoryInfo.StockQuantity <= 0) |
| | | infosDel.Add(inventoryInfo); |
| | | else |
| | | infosUp.Add(inventoryInfo); |
| | | } |
| | | //_inventoryInfoService.UpdateData(inventoryInfos); |
| | | |
| | | //æ´æ°æ¹æ¬¡ä¿¡æ¯ |
| | | inventory_Batch.StockQuantity += inventory_Batch.SupplyQuantity; |
| | | inventory_Batch.AvailableQuantity = inventory_Batch.StockQuantity; |
| | | inventory_Batch.SupplyQuantity = 0; |
| | | //_inventory_BatchServices.UpdateData(inventory_Batch); |
| | | infosUp.AddRange(inventoryInfos); |
| | | batchesUp.Add(inventory_Batch); |
| | | |
| | | // æ£æ¥æ¹æ¬¡åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ |
| | | if (inventory_Batch.StockQuantity <= 0) |
| | | batchesDel.Add(inventory_Batch); |
| | | else |
| | | batchesUp.Add(inventory_Batch); |
| | | #endregion |
| | | |
| | | #region å建大件åºçç¹å |
| | |
| | | Status = 2, |
| | | }).ToList() |
| | | }; |
| | | //Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); |
| | | //Repository.AddData(entityOrder); |
| | | deliveryOrdersAdd.Add(entityOrder); |
| | | #endregion |
| | | } |
| | | else |
| | | else //ç«åºæçç¹å·®å¼ï¼éè¦åºåºï¼ï¼å¤§ä»¶åºå¯è½æææ²¡æå·®å¼ |
| | | { |
| | | #region 大件åºåºå平账 |
| | | inventoryInfos = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList(); |
| | | foreach (var inventoryInfo in inventoryInfos) |
| | | var inventoryInfosDJ = inventoryInfos.Where(x => x.WarehouseCode == WareCodeDJ).ToList(); |
| | | foreach (var inventoryInfo in inventoryInfosDJ) |
| | | { |
| | | #region æ·»å çäºåºåºä»»å¡ |
| | | if (inventoryInfo.StockQuantity != inventoryInfo.SupplyQuantity) |
| | |
| | | SupplyQuantity = 0, |
| | | Remark = "çäºåºåº" |
| | | }; |
| | | //_supplyTaskHtyService.AddData(supplyTask_Hty); |
| | | supplyTask_Hties.Add(supplyTask_Hty); |
| | | } |
| | | #endregion |
| | | |
| | | inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity; |
| | | inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity; |
| | | inventoryInfo.SupplyQuantity = 0; |
| | | inventoryInfo.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | |
| | | // æ£æ¥åºåæ¯å¦ä¸º0ï¼å¦ææ¯åæ 记为å é¤ |
| | | if (inventoryInfo.StockQuantity <= 0) |
| | | infosDel.Add(inventoryInfo); |
| | | else |
| | | infosUp.Add(inventoryInfo); |
| | | } |
| | | //_inventoryInfoService.UpdateData(inventoryInfos); |
| | | infosUp.AddRange(inventoryInfos); |
| | | #endregion |
| | | |
| | | #region å建大件åºçç¹å |
| | |
| | | Status = 2, |
| | | }).ToList() |
| | | }; |
| | | //Repository.AddData(cabinOrder); |
| | | //Db.InsertNav(cabinOrder).Include(it => it.Details).ExecuteCommand(); |
| | | deliveryOrdersAdd.Add(cabinOrder); |
| | | } |
| | | #endregion |
| | | //è¿é |
| | | |
| | | #region å建ç«åºçç¹å |
| | | var entityOrder = new Dt_DeliveryOrder |
| | | { |
| | |
| | | Status = 0, |
| | | }).ToList() |
| | | }; |
| | | //Db.InsertNav(entityOrder).Include(it => it.Details).ExecuteCommand(); |
| | | //Repository.AddData(entityOrder); |
| | | deliveryOrdersAdd.Add(entityOrder); |
| | | #endregion |
| | | } |
| | | //return WebResponseContent.Instance.OK("æå"); |
| | | } |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | _supplyTaskHtyService.AddData(supplyTask_Hties); |
| | | _inventoryInfoService.UpdateData(infosUp); |
| | | _inventory_BatchServices.UpdateData(batchesUp); |
| | | |
| | | if (infosUp.Any()) |
| | | _inventoryInfoService.UpdateData(infosUp); |
| | | if (infosDel.Any()) |
| | | _inventoryInfoService.DeleteData(infosDel); |
| | | if (batchesUp.Any()) |
| | | _inventory_BatchServices.UpdateData(batchesUp); |
| | | if (batchesDel.Any()) |
| | | _inventory_BatchServices.DeleteData(batchesDel); |
| | | |
| | | BaseDal.Db.InsertNav(deliveryOrdersAdd).Include(it => it.Details).ExecuteCommand(); |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | |
| | | return WebResponseContent.Instance.OK("æå"); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | return content; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// å¤çåºåºåãåºåä¿¡æ¯ãåºåºä»»å¡ãè°æ¨ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="supplyTask"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent OutTaskFinish(Dt_SupplyTask supplyTask, Dt_DeliveryOrder deliveryOrder) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | |
| | | #endregion |
| | | |
| | | #region åºåæ¹æ¬¡ 妿任å¡ç±»åæ¯è°æ¨åºåºä»»å¡ï¼8ï¼å°±ä¸ä¿®æ¹æ¹æ¬¡åºå |
| | | Dt_Inventory_Batch inventory_Batch = _inventory_BatchServices.Repository.QueryFirst(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode == |
| | | inventoryInfo.MaterielCode); |
| | | Dt_Inventory_Batch inventory_Batch = _inventory_BatchServices.Repository.QueryFirst(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode ==inventoryInfo.MaterielCode); |
| | | if (supplyTask.TaskType != TaskTypeEnum.AllocatOut.ObjToInt()) |
| | | { |
| | | inventory_Batch.StockQuantity -= supplyTask.StockQuantity; |
| | |
| | | supplyTask.TaskStatus = SupplyStatusEnum.OutFinish.ObjToInt(); |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | if (inventory_Batch.StockQuantity <= 0) |
| | | if (inventory_Batch.StockQuantity <= 0)//妿åºåæ°éå°äº0å°±å é¤åºåæ¹æ¬¡ä¿¡æ¯ |
| | | _inventory_BatchServices.DeleteData(inventory_Batch); |
| | | else |
| | | _inventory_BatchServices.UpdateData(inventory_Batch); |
| | | //_materielInfoService.UpdateData(materielInfo); |
| | | if (inventoryInfo.StockQuantity <= 0) |
| | | if (inventoryInfo.StockQuantity <= 0)//妿åºåæ°éå°äº0å°±å é¤åºåä¿¡æ¯ |
| | | _inventoryInfoService.DeleteData(inventoryInfo); |
| | | else |
| | | _inventoryInfoService.UpdateData(inventoryInfo); |
| | |
| | | return content; |
| | | } |
| | | |
| | | |
| | | public WebResponseContent OutTaskFinish(Dt_SupplyTask supplyTask) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |