| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Reflection.Metadata; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.OrderEnum; |
| | | using WIDESEA_Common.StockEnum; |
| | | using WIDESEA_Common.TaskEnum; |
| | | using WIDESEA_Common.WareHouseEnum; |
| | |
| | | { |
| | | #region å¤çå
¥åºè®¢å |
| | | |
| | | Dt_CabinOrder cabinOrder = Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == request.orderNo && x.Warehouse_no == reslut).Includes(x => x.Details).First(); |
| | | Dt_CabinOrder cabinOrder = Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == request.externalOrderNo && x.Warehouse_no == reslut).Includes(x => x.Details).First(); |
| | | if (cabinOrder == null) throw new Exception($"æªæ¾å°å
¥åºåå·ã{request.externalOrderNo}ãçå
¥åºåä¿¡æ¯"); |
| | | #region 夿æ¯å¦ä¸ºççå
¥åºå |
| | | if (cabinOrder.Order_type == "5") |
| | | { |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region å建åºåæ¹æ¬¡ä¿¡æ¯ |
| | | // 6ï¸â£ æ¥è¯¢åºåæ¹æ¬¡ä¿¡æ¯ |
| | | var inventory_Batch = BaseDal.Db.Queryable<Dt_Inventory_Batch>() |
| | | .First(x => x.MaterielCode == inventoryInfo.MaterielCode && x.BatchNo == inventoryInfo.BatchNo); |
| | | #region å建åºåæ¹æ¬¡ä¿¡æ¯ åªæä¸æ¯è°æ¨å
¥åºåï¼115ï¼æå¯¹æ¹æ¬¡ä¿¡æ¯è¿è¡ä¿®æ¹ |
| | | if (cabinOrder.Order_type != InOrderTypeEnum.Allocat.ObjToInt().ToString()) |
| | | { |
| | | // 6ï¸â£ æ¥è¯¢åºåæ¹æ¬¡ä¿¡æ¯ |
| | | var inventory_Batch = BaseDal.Db.Queryable<Dt_Inventory_Batch>() |
| | | .First(x => x.MaterielCode == inventoryInfo.MaterielCode && x.BatchNo == inventoryInfo.BatchNo); |
| | | |
| | | if (inventory_Batch != null) |
| | | { |
| | | inventory_Batch.StockQuantity += orderQty; |
| | | inventory_Batch.AvailableQuantity += orderQty; |
| | | BaseDal.Db.Updateable(inventory_Batch).ExecuteCommand(); |
| | | } |
| | | else |
| | | { |
| | | inventory_Batch = new Dt_Inventory_Batch |
| | | if (inventory_Batch != null) |
| | | { |
| | | MaterielCode = inventoryInfo.MaterielCode, |
| | | MaterielName = inventoryInfo.MaterielName, |
| | | MaterielSpec = inventoryInfo.MaterielSpec, |
| | | BatchNo = inventoryInfo.BatchNo, |
| | | StockQuantity = inventoryInfo.StockQuantity, |
| | | OutboundQuantity = inventoryInfo.OutboundQuantity, |
| | | AvailableQuantity = inventoryInfo.AvailableQuantity, |
| | | SupplyQuantity = inventoryInfo.SupplyQuantity, |
| | | ERPStockQuantity = 0, |
| | | Status = false, |
| | | ProductionDate = detail.finishDate.ToString("yyyy-MM-dd"), |
| | | ValidityPeriod = inventoryInfo.ValidityPeriod, |
| | | Remark = "èªå¨å建" |
| | | }; |
| | | BaseDal.Db.Insertable(inventory_Batch).ExecuteCommand(); |
| | | inventory_Batch.StockQuantity += orderQty; |
| | | inventory_Batch.AvailableQuantity += orderQty; |
| | | BaseDal.Db.Updateable(inventory_Batch).ExecuteCommand(); |
| | | } |
| | | else |
| | | { |
| | | inventory_Batch = new Dt_Inventory_Batch |
| | | { |
| | | MaterielCode = inventoryInfo.MaterielCode, |
| | | MaterielName = inventoryInfo.MaterielName, |
| | | MaterielSpec = inventoryInfo.MaterielSpec, |
| | | BatchNo = inventoryInfo.BatchNo, |
| | | StockQuantity = inventoryInfo.StockQuantity, |
| | | OutboundQuantity = inventoryInfo.OutboundQuantity, |
| | | AvailableQuantity = inventoryInfo.AvailableQuantity, |
| | | SupplyQuantity = inventoryInfo.SupplyQuantity, |
| | | ERPStockQuantity = 0, |
| | | Status = false, |
| | | ProductionDate = detail.finishDate.ToString("yyyy-MM-dd"), |
| | | ValidityPeriod = inventoryInfo.ValidityPeriod.ObjToDate(), |
| | | Remark = "èªå¨å建" |
| | | }; |
| | | BaseDal.Db.Insertable(inventory_Batch).ExecuteCommand(); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | |
| | | SupplyQuantity = 0, |
| | | Remark = "å
¥åº" |
| | | }; |
| | | //è¿éè¿éçå
¥åºè°æ¨åç¶ææ¯115ï¼å°±å°è°æ¨ä»»å¡ç¶ææ¹ä¸º7 |
| | | if (cabinOrder.Order_type == InOrderTypeEnum.Allocat.ObjToInt().ToString()) supplyTask_Hty.TaskType = TaskTypeEnum.AllocatIn.ObjToInt(); |
| | | BaseDal.Db.Insertable(supplyTask_Hty).ExecuteCommand(); |
| | | #endregion |
| | | } |
| | |
| | | break; |
| | | case "2": |
| | | { |
| | | Dt_DeliveryOrder cabinOrder = Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == request.orderNo && x.Warehouse_no == reslut).Includes(x => x.Details).First(); |
| | | Dt_DeliveryOrder cabinOrder = Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == request.externalOrderNo && x.Warehouse_no == reslut).Includes(x => x.Details).First(); |
| | | if (cabinOrder == null) throw new Exception($"æªæ¾å°åºåºåå·ã{request.externalOrderNo}ãçå
¥åºåä¿¡æ¯"); |
| | | |
| | | if (cabinOrder.Out_type == "6") |
| | | { |
| | | foreach (var item in cabinOrder.Details) |
| | |
| | | else |
| | | { |
| | | #region æ¾åºåºä»»å¡ |
| | | Dt_SupplyTask supplyTask = Db.Queryable<Dt_SupplyTask>().Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo && x.OrderNo == request.orderNo && x.WarehouseCode == reslut && x.TaskStatus == SupplyStatusEnum.NewOut.ObjToInt()).First(); |
| | | if (supplyTask == null) throw new Exception($"æªæ¾å°è®¢åå·ã{request.orderNo}ãç©æç¼å·ã{detail.productCode}ãçåºåºä»»å¡"); |
| | | Dt_SupplyTask supplyTask = Db.Queryable<Dt_SupplyTask>().Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo && x.OrderNo == request.externalOrderNo && x.WarehouseCode == reslut && x.TaskStatus == SupplyStatusEnum.NewOut.ObjToInt()).First(); |
| | | if (supplyTask == null) throw new Exception($"æªæ¾å°è®¢åå·ã{request.externalOrderNo}ãç©æç¼å·ã{detail.productCode}ãçåºåºä»»å¡"); |
| | | if (supplyTask.StockQuantity != orderQty) throw new Exception($"订åå·ã{request.orderNo}ãç©æç¼å·ã{detail.productCode}ãçåºåºæ°éä¸åºåºä»»å¡æ°éä¸ç¸ç"); |
| | | #endregion |
| | | |
| | | #region å¤çåºåºåãåºåä¿¡æ¯ãåºåºä»»å¡ãè°æ¨ä»»å¡ |
| | | _deliveryOrderServices.OutTaskFinish(supplyTask); |
| | | var content = _deliveryOrderServices.OutTaskFinish(supplyTask); |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | #endregion |
| | | } |
| | | } |
| | | break; |
| | | case "3": // çç¹ |
| | | { |
| | | var WarehouseLK = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); |
| | | #region æ¾çç¹ä»»å¡ |
| | | Dt_SupplyTask supplyTask = Db.Queryable<Dt_SupplyTask>().Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo && x.OrderNo == request.orderNo && x.WarehouseCode == WarehouseEnum.ç«åº.ObjToInt().ToString("000") && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt()).First(); |
| | | if (supplyTask == null) throw new Exception($"æªæ¾å°è®¢åå·ã{request.orderNo}ãç©æç¼å·ã{detail.productCode}ãççç¹ä»»å¡"); |
| | | Dt_SupplyTask supplyTask = Db.Queryable<Dt_SupplyTask>().Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo && x.OrderNo == request.externalOrderNo && x.WarehouseCode == WarehouseLK && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt()).First(); |
| | | if (supplyTask == null) throw new Exception($"æªæ¾å°è®¢åå·ã{request.externalOrderNo}ãç©æç¼å·ã{detail.productCode}ãççç¹ä»»å¡"); |
| | | #endregion |
| | | if (detail.isLossOrProfit == 1) // çäº |
| | | { |
| | |
| | | { |
| | | supplyTask.SupplyQuantity = supplyTask.StockQuantity; |
| | | } |
| | | _deliveryOrderServices.CheckTaskFinish(supplyTask); |
| | | var content = _deliveryOrderServices.CheckTaskFinish(supplyTask); |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | } |
| | | break; |
| | | } |