| | |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_Core.Helper; |
| | | |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_ISquareCabinServices; |
| | | using WIDESEA_Model.Models; |
| | | |
| | |
| | | { |
| | | |
| | | static string SearchDate = ""; |
| | | private readonly IBasicService _basicService; |
| | | |
| | | public CabinOrderServices(IRepository<Dt_CabinOrder> BaseDal) : base(BaseDal) |
| | | public CabinOrderServices(IRepository<Dt_CabinOrder> BaseDal, IBasicService basicService) : base(BaseDal) |
| | | { |
| | | _basicService = basicService; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | OdrderStatus = "æ°å»º", |
| | | Supplier_name=order.supplier_name, |
| | | Warehouse_no = order.warehouse_no, |
| | | Details = order.details.Select(d => new Dt_CabinOrderDetail |
| | | { |
| | | //OrderId è¦æ¿å°å
¥åºå表ä¸çidï¼å¦ä½æ¿ä¸å°å°±å°è¿ä¸ªå段æ¹äºï¼æ¹æå
¥åºåå· |
| | | // SqlSugar InsertNavå·¥ä½åçå
æå
¥ä¸»è¡¨ (Dt_CabinOrder)//è·åçæç主é®ID//èªå¨è®¾ç½®å表çå
³èåæ®µ (OrderId)//åæå
¥(Dt_CabinOrderDetail) |
| | | Goods_no = d.goods_no, |
| | | Order_qty = d.order_qty, |
| | | Batch_num = d.batch_num, |
| | | Exp_date = d.exp_date, |
| | | OrderDetailStatus="æ°å»º", |
| | | Status = order.warehouse_no== "001" ? 0 : 2, //妿æ¯001æ¿é£ä¹å°±æ¯æªåæ¥ç¶æï¼å¦æä¸æ¯001æ¿é£ä¹å°±æ¯æ éåæ¥ç¶æ |
| | | }).ToList() |
| | | Details = new List<Dt_CabinOrderDetail>() |
| | | //Details = order.details.Select(d => new Dt_CabinOrderDetail |
| | | //{ |
| | | // //OrderId è¦æ¿å°å
¥åºå表ä¸çidï¼å¦ä½æ¿ä¸å°å°±å°è¿ä¸ªå段æ¹äºï¼æ¹æå
¥åºåå· |
| | | // // SqlSugar InsertNavå·¥ä½åçå
æå
¥ä¸»è¡¨ (Dt_CabinOrder)//è·åçæç主é®ID//èªå¨è®¾ç½®å表çå
³èåæ®µ (OrderId)//åæå
¥(Dt_CabinOrderDetail) |
| | | // Goods_no = d.goods_no, |
| | | // Order_qty = d.order_qty, |
| | | // Batch_num = d.batch_num, |
| | | // Exp_date = d.exp_date, |
| | | // OrderDetailStatus = "æ°å»º", |
| | | // Status = order.warehouse_no == "001" ? 0 : 2, //妿æ¯001æ¿é£ä¹å°±æ¯æªåæ¥ç¶æï¼å¦æä¸æ¯001æ¿é£ä¹å°±æ¯æ éåæ¥ç¶æ |
| | | //}).ToList() |
| | | }; |
| | | foreach (var item in order.details) |
| | | { |
| | | #region æ ¹æ®ç©æç¼ç æ¥è¯¢ç©æä¿¡æ¯ |
| | | Dt_MaterielInfo materielInfo = _basicService.MaterielInfoService.Repository.QueryFirst(x => x.MaterielCode == item.goods_no); |
| | | ///æ ¹æ®ç©æä¿¡æ¯å¤§å°ä»¶å±æ§åºåæ¯å¦å
¥ç«åº |
| | | if (materielInfo.MaterielSourceType == MaterielSourceTypeEnum.PurchasePart) |
| | | { |
| | | Dt_CabinOrderDetail orderDetail = new Dt_CabinOrderDetail() |
| | | { |
| | | Reservoirarea= order.warehouse_no, |
| | | Goods_no = item.goods_no, |
| | | Order_qty = item.order_qty, |
| | | Batch_num = item.batch_num, |
| | | Exp_date = item.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | | Status = 2 |
| | | }; |
| | | entityOrder.Details.Add(orderDetail); |
| | | } |
| | | else |
| | | { |
| | | Dt_CabinOrderDetail orderDetail = null; |
| | | var ys = item.order_qty % materielInfo.BoxQty; |
| | | var xs = item.order_qty / materielInfo.BoxQty; |
| | | #region çæç«åºå
¥åºå |
| | | |
| | | #region 夿æ¯å¦ææ£ä»¶ |
| | | if (ys > 0) |
| | | { |
| | | orderDetail = new Dt_CabinOrderDetail() |
| | | { |
| | | Goods_no = item.goods_no, |
| | | Order_qty = ys, |
| | | Batch_num = item.batch_num, |
| | | Exp_date = item.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | | Status = 0 |
| | | }; |
| | | materielInfo.Business_qty += ys; |
| | | } |
| | | #endregion |
| | | |
| | | #region 夿ç«åºåºåæ¯å¦å¤§äºç«åºæä½åºåæ° |
| | | while (materielInfo.Business_qty < materielInfo.MinQty && xs > 0) |
| | | { |
| | | xs--; |
| | | if (orderDetail == null) |
| | | { |
| | | orderDetail = new Dt_CabinOrderDetail() |
| | | { |
| | | Goods_no = item.goods_no, |
| | | Order_qty = materielInfo.BoxQty, |
| | | Batch_num = item.batch_num, |
| | | Exp_date = item.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | | Status = 0 |
| | | }; |
| | | materielInfo.Business_qty += materielInfo.BoxQty; |
| | | } |
| | | else |
| | | { |
| | | orderDetail.Order_qty += materielInfo.BoxQty; |
| | | materielInfo.Business_qty += materielInfo.BoxQty; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | if (orderDetail != null) entityOrder.Details.Add(orderDetail); |
| | | #endregion |
| | | |
| | | #region å©ä½æ´ä»¶å
¥å¹³åº |
| | | if (xs > 0) |
| | | { |
| | | orderDetail = new Dt_CabinOrderDetail() |
| | | { |
| | | Goods_no = item.goods_no, |
| | | Order_qty = materielInfo.BoxQty * xs, |
| | | Batch_num = item.batch_num, |
| | | Exp_date = item.exp_date, |
| | | OrderDetailStatus = "æ°å»º", |
| | | Status = 2 |
| | | }; |
| | | entityOrder.Details.Add(orderDetail); |
| | | } |
| | | #endregion |
| | | } |
| | | _basicService.MaterielInfoService.Repository.UpdateData(materielInfo); |
| | | #endregion |
| | | } |
| | | _CabinOrders.Add(entityOrder); |
| | | orderNos.Add(order.order_no); |
| | | }; |