| | |
| | | using System; |
| | | using AutoMapper; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_BasicRepository; |
| | | using WIDESEA_Common.MaterielEnum; |
| | | using WIDESEA_Common.OrderEnum; |
| | | using WIDESEA_Common.WareHouseEnum; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.BaseRepository; |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_Core.Const; |
| | | using WIDESEA_Core.Enums; |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_DTO; |
| | | using WIDESEA_DTO.Basic; |
| | | using WIDESEA_DTO.ERP; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_IInboundRepository; |
| | | using WIDESEA_IInboundService; |
| | |
| | | private readonly IBasicRepository _basicRepository; |
| | | private readonly ISupplierInfoRepository _supplierInfoRepository; |
| | | private readonly IMaterielInfoRepository _materielInfoRepository; |
| | | private readonly IMapper _mapper; |
| | | |
| | | public PurchaseOrderService(IPurchaseOrderRepository BaseDal, IPurchaseOrderDetailRepository purchaseOrderDetailRepository, IUnitOfWorkManage unitOfWorkManage, IBasicRepository basicRepository, ISupplierInfoRepository supplierInfoRepository, IMaterielInfoRepository materielInfoRepository) : base(BaseDal) |
| | | public PurchaseOrderService(IPurchaseOrderRepository BaseDal, IPurchaseOrderDetailRepository purchaseOrderDetailRepository, IUnitOfWorkManage unitOfWorkManage, IBasicRepository basicRepository, ISupplierInfoRepository supplierInfoRepository, IMaterielInfoRepository materielInfoRepository,IMapper mapper) : base(BaseDal) |
| | | { |
| | | _purchaseOrderDetailRepository = purchaseOrderDetailRepository; |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | _basicRepository = basicRepository; |
| | | _supplierInfoRepository = supplierInfoRepository; |
| | | _materielInfoRepository = materielInfoRepository; |
| | | _mapper = mapper; |
| | | } |
| | | public WebResponseContent GetPurchaseOrderInfo(string purchaseOrderNo) |
| | | |
| | | //public override PageGridData<Dt_PurchaseOrder> GetPageData(PageDataOptions options) |
| | | //{ |
| | | // PageGridData<Dt_PurchaseOrder> pageGridData = base.GetPageData(options); |
| | | |
| | | // ISugarQueryable<Dt_PurchaseOrder> sugarQueryable1 = BaseDal.Db.Queryable<Dt_PurchaseOrder>().Includes(x => x.Details); |
| | | // if (!string.IsNullOrEmpty(options.Wheres)) |
| | | // { |
| | | |
| | | // List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>(); |
| | | // int totalCount = 0; |
| | | // if (searchParametersList.Count > 0) |
| | | // { |
| | | // { |
| | | // SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_PurchaseOrderDetail.MaterielCode).FirstLetterToLower()); |
| | | // if (searchParameters != null) |
| | | // { |
| | | // sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.MaterielCode.Contains(searchParameters.Value))); |
| | | // List<Dt_PurchaseOrder> dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount); |
| | | // return new PageGridData<Dt_PurchaseOrder>(totalCount, dataList); |
| | | // } |
| | | // } |
| | | |
| | | // { |
| | | // SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_PurchaseOrderDetail.WarehouseId).FirstLetterToLower()); |
| | | // if (searchParameters != null && int.TryParse(searchParameters.Value, out int warehouseId)) |
| | | // { |
| | | // sugarQueryable1 = sugarQueryable1.Where(x =>x.Details.Any(v => v.WarehouseId == warehouseId)); |
| | | // List<Dt_PurchaseOrder> dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount); |
| | | // return new PageGridData<Dt_PurchaseOrder>(totalCount, dataList); |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // return pageGridData; |
| | | //} |
| | | /// <summary> |
| | | /// æ¥æ¶ERPéè´å
¥åºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent ReceivePurchaseOrder(ERPPurchaseOrderDTO eRPPurchaseOrderDTO) |
| | | { |
| | | WebResponseContent content=new WebResponseContent(); |
| | | 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); |
| | | if (eRPPurchaseOrderDTO == null) |
| | | { |
| | | return content.Error("éè´ä¿¡æ¯ä¸è½ä¼ å
¥ä¸ºç©º"); |
| | | } |
| | | Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseCode==eRPPurchaseOrderDTO.WarehouseCode); |
| | | if (warehouse==null) |
| | | { |
| | | return content.Error($"ä»åºä¿¡æ¯ä¸åå¨{eRPPurchaseOrderDTO.WarehouseCode}"); |
| | | } |
| | | //è·åææç©æ |
| | | List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.WarehouseId == warehouse.WarehouseId && x.MaterielInvOrgId == MaterielInvOrgEnum.æ°å.ObjToInt() ); |
| | | //è·åææä¾åºå |
| | | List<Dt_SupplierInfo> supplierInfos = _basicRepository.SupplierInfoRepository.QueryData(x => x.InvOrgId == MaterielInvOrgEnum.æ°å.ObjToInt()); |
| | | //夿ä¾åºå |
| | | Dt_SupplierInfo? supplierInfo = supplierInfos.FirstOrDefault(x => x.SupplierCode==eRPPurchaseOrderDTO.SupplierCode); |
| | | if (supplierInfo == null) |
| | | { |
| | | return content.Error($"éè´{nameof(ERPPurchaseOrderDTO.PurchaseInCode)}:{eRPPurchaseOrderDTO.PurchaseInCode}ä¾åºå:{eRPPurchaseOrderDTO.SupplierCode}ä¸åå¨"); |
| | | } |
| | | //夿æ¯å¦åå¨ç©æ |
| | | PurchaseInDetailItem? purchaseInDetailItem = eRPPurchaseOrderDTO.PurchaseInDetail.FirstOrDefault(x => !materielInfos.Select(x => x.MaterielCode).Contains(x.MaterialCode)); |
| | | if (purchaseInDetailItem != null) |
| | | { |
| | | return content.Error($"éè´æ¡ç {nameof(purchaseInDetailItem.Barcode)}:{purchaseInDetailItem.Barcode}ç©æ:{purchaseInDetailItem.MaterialCode}ä¸åå¨"); |
| | | } |
| | | //è·åææéè´ä¿¡æ¯ |
| | | List<Dt_PurchaseOrder> purchaseOrdersOld = BaseDal.Db.Queryable<Dt_PurchaseOrder>().Includes(x=>x.Details).ToList(); |
| | | |
| | | if (eRPPurchaseOrderDTO.OperateType == 1) |
| | | { |
| | | //夿é夿å
¥ |
| | | Dt_PurchaseOrder? purchaseOrderOld = purchaseOrdersOld.FirstOrDefault(x => x.PurchaseOrderNo == eRPPurchaseOrderDTO.PurchaseInCode); |
| | | if (purchaseOrderOld != null) |
| | | { |
| | | return content.Error($"éè´ååå·{purchaseOrderOld.PurchaseOrderNo}ä¿¡æ¯å·²åå¨"); |
| | | } |
| | | List<Dt_PurchaseOrderDetail> purchaseOrderDetails = eRPPurchaseOrderDTO.PurchaseInDetail.Select(x => _mapper.Map<Dt_PurchaseOrderDetail>(x)).ToList(); |
| | | Dt_PurchaseOrder purchaseOrder = _mapper.Map<Dt_PurchaseOrder>(eRPPurchaseOrderDTO); |
| | | purchaseOrderDetails.ForEach(x => |
| | | { |
| | | Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(t => t.MaterielCode == x.MaterialCode); |
| | | x.MaterielName = materielInfo?.MaterielName; |
| | | x.Unit = materielInfo?.MaterielUnit; |
| | | x.MaterielSpec= materielInfo?.MaterielSpec; |
| | | }); |
| | | purchaseOrder.Details = purchaseOrderDetails; |
| | | purchaseOrder.WarehouseId = warehouse.WarehouseId; |
| | | //æ°å¢ |
| | | BaseDal.Db.InsertNav(purchaseOrder).Include(x=>x.Details).ExecuteCommand(); |
| | | |
| | | } |
| | | //else if (eRPPurchaseOrderDTO.OperateType == 2) |
| | | //{ |
| | | // //夿æ¯å¦åå¨ |
| | | // Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode); |
| | | // if (userInfoOld == null) |
| | | // { |
| | | // return content.Error($"æ´æ°å·¥å·{eRPUserInfoDTO.StaffCode}ï¼åå·¥{eRPUserInfoDTO.StaffName}ä¸åå¨"); |
| | | // } |
| | | // Dt_UserInfo userInfo = _mapper.Map<Dt_UserInfo>(eRPUserInfoDTO); |
| | | // userInfo.Id = userInfoOld.Id; |
| | | // Sys_User user = _userRepository.QueryFirst(x => x.UserName == userInfo.Code); |
| | | // if (userInfoOld == null) |
| | | // { |
| | | // return content.Error($"æ´æ°å·¥å·{eRPUserInfoDTO.StaffCode}ï¼åå·¥{eRPUserInfoDTO.StaffName}ï¼WMSè´¦å·ä¸åå¨"); |
| | | // } |
| | | // user.Enable = (byte)userInfo.State; |
| | | // user.UserTrueName = userInfo.Name; |
| | | // //æ´æ° |
| | | // BaseDal.UpdateData(userInfo); |
| | | // _userRepository.UpdateData(user); |
| | | //} |
| | | //else if (eRPPurchaseOrderDTO.OperateType == 3) |
| | | //{ |
| | | // //夿æ¯å¦åå¨ |
| | | // Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode); |
| | | // if (userInfoOld == null) |
| | | // { |
| | | // return content.Error($"æ´æ°å·¥å·{eRPUserInfoDTO.StaffCode}ï¼åå·¥{eRPUserInfoDTO.StaffName}ä¸åå¨"); |
| | | // } |
| | | // BaseDal.DeleteData(userInfoOld); |
| | | //} |
| | | else |
| | | { |
| | | return content.Error("æªæ¾å°æä½ç±»å"); |
| | | } |
| | | //æ´æ°æ°æ® |
| | | return content.OK("æ¥æ¶æå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | public WebResponseContent ReceivePurchaseOrder(PurchaseOrderModel model) |
| | | /// <summary> |
| | | /// æ¥æ¶ERPéè´éè´§ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent ReceivePurchaseReturn(ERPReturnOrderDTO eRPReturnOrderDTO) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | return model.Way switch |
| | | if (eRPReturnOrderDTO == null) |
| | | { |
| | | 1 => AddPurchaseOrder(model), |
| | | 2 => UpdatePurchaseOrder(model), |
| | | 3 => DeletePurchaseOrder(model), |
| | | 4 => ClosePurchaseOrder(model), |
| | | _ => WebResponseContent.Instance.OK(), |
| | | }; |
| | | return content.Error("éæä¿¡æ¯ä¸è½ä¸ºç©º"); |
| | | } |
| | | Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == eRPReturnOrderDTO.WarehouseCode); |
| | | if (warehouse == null) |
| | | { |
| | | return content.Error($"ä»åºä¿¡æ¯ä¸åå¨{eRPReturnOrderDTO.WarehouseCode}"); |
| | | } |
| | | //è·åææç©æ |
| | | List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.WarehouseId == warehouse.WarehouseId && x.MaterielInvOrgId == MaterielInvOrgEnum.æ°å.ObjToInt()); |
| | | //夿æ¯å¦åå¨ç©æ |
| | | ReturnDetailItem? returnDetailItem = eRPReturnOrderDTO.ReturnDetail.FirstOrDefault(x => !materielInfos.Select(x => x.MaterielCode).Contains(x.MaterialCode)); |
| | | if (returnDetailItem != null) |
| | | { |
| | | return content.Error($"éè´æ¡ç {nameof(returnDetailItem.BarCode)}:{returnDetailItem.BarCode}ç©æ:{returnDetailItem.MaterialCode}ä¸åå¨"); |
| | | } |
| | | //è·åææéè´§ä¿¡æ¯ |
| | | List<Dt_ReturnOutOrder> returnOutOrdersOld = BaseDal.Db.Queryable<Dt_ReturnOutOrder>().Includes(x => x.Details).ToList(); |
| | | |
| | | if (eRPReturnOrderDTO.OperateType == 1) |
| | | { |
| | | //夿é夿å
¥ |
| | | Dt_ReturnOutOrder? returnOutOrderOld = returnOutOrdersOld.FirstOrDefault(x => x.ReturnNo == eRPReturnOrderDTO.ReturnCode); |
| | | if (returnOutOrderOld != null) |
| | | { |
| | | return content.Error($"éè´§ åå·{returnOutOrderOld.ReturnNo}ä¿¡æ¯å·²åå¨"); |
| | | } |
| | | List<Dt_ReturnOutOrderDetail> returnOutOrderDetails = eRPReturnOrderDTO.ReturnDetail.Select(x => _mapper.Map<Dt_ReturnOutOrderDetail>(x)).ToList(); |
| | | Dt_ReturnOutOrder returnOutOrderAdd = _mapper.Map<Dt_ReturnOutOrder>(eRPReturnOrderDTO); |
| | | returnOutOrderDetails.ForEach(x => |
| | | { |
| | | Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(t => t.MaterielCode == x.MaterialCode); |
| | | x.MaterielName = materielInfo?.MaterielName; |
| | | x.Unit = materielInfo?.MaterielUnit; |
| | | }); |
| | | returnOutOrderAdd.Details = returnOutOrderDetails; |
| | | returnOutOrderAdd.WarehouseId = warehouse.WarehouseId; |
| | | //æ°å¢ |
| | | BaseDal.Db.InsertNav(returnOutOrderAdd).Include(x => x.Details).ExecuteCommand(); |
| | | |
| | | } |
| | | //else if (eRPPurchaseOrderDTO.OperateType == 2) |
| | | //{ |
| | | // //夿æ¯å¦åå¨ |
| | | // Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode); |
| | | // if (userInfoOld == null) |
| | | // { |
| | | // return content.Error($"æ´æ°å·¥å·{eRPUserInfoDTO.StaffCode}ï¼åå·¥{eRPUserInfoDTO.StaffName}ä¸åå¨"); |
| | | // } |
| | | // Dt_UserInfo userInfo = _mapper.Map<Dt_UserInfo>(eRPUserInfoDTO); |
| | | // userInfo.Id = userInfoOld.Id; |
| | | // Sys_User user = _userRepository.QueryFirst(x => x.UserName == userInfo.Code); |
| | | // if (userInfoOld == null) |
| | | // { |
| | | // return content.Error($"æ´æ°å·¥å·{eRPUserInfoDTO.StaffCode}ï¼åå·¥{eRPUserInfoDTO.StaffName}ï¼WMSè´¦å·ä¸åå¨"); |
| | | // } |
| | | // user.Enable = (byte)userInfo.State; |
| | | // user.UserTrueName = userInfo.Name; |
| | | // //æ´æ° |
| | | // BaseDal.UpdateData(userInfo); |
| | | // _userRepository.UpdateData(user); |
| | | //} |
| | | //else if (eRPPurchaseOrderDTO.OperateType == 3) |
| | | //{ |
| | | // //夿æ¯å¦åå¨ |
| | | // Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode); |
| | | // if (userInfoOld == null) |
| | | // { |
| | | // return content.Error($"æ´æ°å·¥å·{eRPUserInfoDTO.StaffCode}ï¼åå·¥{eRPUserInfoDTO.StaffName}ä¸åå¨"); |
| | | // } |
| | | // BaseDal.DeleteData(userInfoOld); |
| | | //} |
| | | else |
| | | { |
| | | return content.Error("æªæ¾å°æä½ç±»å"); |
| | | } |
| | | //æ´æ°æ°æ® |
| | | return content.OK("æ¥æ¶æå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | public WebResponseContent AddPurchaseOrder(PurchaseOrderModel model) |
| | | /// <summary> |
| | | /// æ¥æ¶ERPæåéå®åºåºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent ReceiveProDeliveryOrder(ERPProDeliveryDTO eRPProDeliveryDTO) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | if (BaseDal.QueryFirst(x => x.PurchaseOrderNo == model.OrderNo) != null) |
| | | if (eRPProDeliveryDTO == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"éè´åå·éå¤"); |
| | | return content.Error("éå®åºåºä¿¡æ¯ä¸è½ä¸ºç©º"); |
| | | } |
| | | if (_supplierInfoRepository.QueryFirst(x => x.SupplierCode == model.SCode) == null) |
| | | Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == eRPProDeliveryDTO.WarehouseCode); |
| | | if (warehouse == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°ä¾åºåç¼ç ã{model.SCode}ãçä¿¡æ¯"); |
| | | return content.Error($"ä»åºä¿¡æ¯ä¸åå¨{eRPProDeliveryDTO.WarehouseCode}"); |
| | | } |
| | | List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData(); |
| | | List<Dt_MaterielInfo> materielInfos = _materielInfoRepository.QueryData(); |
| | | List<Dt_PurchaseOrderDetail> purchaseOrderDetails = new List<Dt_PurchaseOrderDetail>(); |
| | | foreach (var item in model.MList) |
| | | //è·åææç©æ |
| | | List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.WarehouseId == warehouse.WarehouseId && x.MaterielInvOrgId == MaterielInvOrgEnum.æ°å.ObjToInt()); |
| | | |
| | | //è·åææå®¢æ· |
| | | List<Dt_CustomerInfo> customerInfos = _basicRepository.CustomerInfoRepository.QueryData(); |
| | | |
| | | //夿æ¯å¦åå¨ç©æ |
| | | DeliveryDetailItem? deliveryDetailItem = eRPProDeliveryDTO.DeliveryDetail.FirstOrDefault(x => !materielInfos.Select(x => x.MaterielCode).Contains(x.MaterialCode)); |
| | | if (deliveryDetailItem != null) |
| | | { |
| | | Dt_Warehouse? warehouse = warehouses.FirstOrDefault(x => x.WarehouseCode == item.WaId); |
| | | if (warehouse == null) |
| | | return content.Error($"ç©æä¿¡æ¯{deliveryDetailItem.MaterialCode}ä¸åå¨"); |
| | | } |
| | | |
| | | //夿æ¯å¦åå¨å®¢æ· |
| | | DeliveryDetailItem? deliveryDetailCustom = eRPProDeliveryDTO.DeliveryDetail.FirstOrDefault(x => !customerInfos.Select(x => x.CustomerCode).Contains(x.Customer)); |
| | | |
| | | if (deliveryDetailCustom != null) |
| | | { |
| | | return content.Error($"客æ·ä¿¡æ¯{deliveryDetailCustom.Customer}ä¸åå¨"); |
| | | } |
| | | |
| | | //è·åææéå®åºåºä¿¡æ¯ |
| | | List<Dt_ProDeliveryOrder> proDeliveryOrdersOld = BaseDal.Db.Queryable<Dt_ProDeliveryOrder>().Includes(x => x.Details).ToList(); |
| | | |
| | | if (eRPProDeliveryDTO.OperateType == 1) |
| | | { |
| | | //夿é夿å
¥ |
| | | Dt_ProDeliveryOrder? proDeliveryOrderOld = proDeliveryOrdersOld.FirstOrDefault(x => x.DeliveryCode == eRPProDeliveryDTO.DeliveryCode); |
| | | if (proDeliveryOrderOld != null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°ä»åºä¿¡æ¯"); |
| | | return content.Error($"éå®åºåºåå·{proDeliveryOrderOld.DeliveryCode}ä¿¡æ¯å·²åå¨"); |
| | | } |
| | | Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MCode); |
| | | if (materielInfo == null) |
| | | List<Dt_ProDeliveryOrderDetail> proDeliveryOrderDetails = eRPProDeliveryDTO.DeliveryDetail.Select(x => _mapper.Map<Dt_ProDeliveryOrderDetail>(x)).ToList(); |
| | | Dt_ProDeliveryOrder proDeliveryOrderAdd = _mapper.Map<Dt_ProDeliveryOrder>(eRPProDeliveryDTO); |
| | | proDeliveryOrderDetails.ForEach(x => |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°ç©æç¼ç ã{item.MCode}ãçä¿¡æ¯"); |
| | | } |
| | | Dt_PurchaseOrderDetail purchaseOrderDetail = new Dt_PurchaseOrderDetail() |
| | | { |
| | | MaterielCode = item.MCode, |
| | | MaterielName = materielInfo.MaterielName, |
| | | MaterielSpec = materielInfo.MaterielSpec, |
| | | PurchaseDetailQuantity = item.Qty, |
| | | PurchaseDetailReceiveQty = 0, |
| | | PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt(), |
| | | Unit = item.Unit, |
| | | WarehouseId = warehouse.WarehouseId, |
| | | RowNo = item.RowId, |
| | | }; |
| | | purchaseOrderDetails.Add(purchaseOrderDetail); |
| | | Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(t => t.MaterielCode == x.MaterialCode); |
| | | x.MaterielName = materielInfo?.MaterielName; |
| | | x.Unit = materielInfo?.MaterielUnit; |
| | | }); |
| | | proDeliveryOrderAdd.Details = proDeliveryOrderDetails; |
| | | proDeliveryOrderAdd.WarehouseId = warehouse.WarehouseId; |
| | | //æ°å¢ |
| | | BaseDal.Db.InsertNav(proDeliveryOrderAdd).Include(x => x.Details).ExecuteCommand(); |
| | | |
| | | } |
| | | |
| | | Dt_PurchaseOrder purchaseOrder = new Dt_PurchaseOrder() |
| | | //else if (eRPPurchaseOrderDTO.OperateType == 2) |
| | | //{ |
| | | // //夿æ¯å¦åå¨ |
| | | // Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode); |
| | | // if (userInfoOld == null) |
| | | // { |
| | | // return content.Error($"æ´æ°å·¥å·{eRPUserInfoDTO.StaffCode}ï¼åå·¥{eRPUserInfoDTO.StaffName}ä¸åå¨"); |
| | | // } |
| | | // Dt_UserInfo userInfo = _mapper.Map<Dt_UserInfo>(eRPUserInfoDTO); |
| | | // userInfo.Id = userInfoOld.Id; |
| | | // Sys_User user = _userRepository.QueryFirst(x => x.UserName == userInfo.Code); |
| | | // if (userInfoOld == null) |
| | | // { |
| | | // return content.Error($"æ´æ°å·¥å·{eRPUserInfoDTO.StaffCode}ï¼åå·¥{eRPUserInfoDTO.StaffName}ï¼WMSè´¦å·ä¸åå¨"); |
| | | // } |
| | | // user.Enable = (byte)userInfo.State; |
| | | // user.UserTrueName = userInfo.Name; |
| | | // //æ´æ° |
| | | // BaseDal.UpdateData(userInfo); |
| | | // _userRepository.UpdateData(user); |
| | | //} |
| | | //else if (eRPPurchaseOrderDTO.OperateType == 3) |
| | | //{ |
| | | // //夿æ¯å¦åå¨ |
| | | // Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode); |
| | | // if (userInfoOld == null) |
| | | // { |
| | | // return content.Error($"æ´æ°å·¥å·{eRPUserInfoDTO.StaffCode}ï¼åå·¥{eRPUserInfoDTO.StaffName}ä¸åå¨"); |
| | | // } |
| | | // BaseDal.DeleteData(userInfoOld); |
| | | //} |
| | | else |
| | | { |
| | | OrderQuantity = model.Amount, |
| | | OrderDate = model.OrderDate, |
| | | PurchaseOrderNo = model.OrderNo, |
| | | PurchaseOrderStatus = PurchaseOrderStatusEnum.NotReceived.ObjToInt(), |
| | | PurchaseOrderType = model.Type, |
| | | SupplierCode = model.SCode, |
| | | Details = purchaseOrderDetails |
| | | }; |
| | | |
| | | Db.InsertNav(purchaseOrder).Include(x => x.Details).ExecuteCommand(); |
| | | |
| | | return WebResponseContent.Instance.OK(); |
| | | return content.Error("æªæ¾å°æä½ç±»å"); |
| | | } |
| | | //æ´æ°æ°æ® |
| | | return content.OK("æ¥æ¶æå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | public WebResponseContent UpdatePurchaseOrder(PurchaseOrderModel model) |
| | | /// <summary> |
| | | /// æ¥æ¶ERPéçäº§é¢æä¿¡æ¯ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent ReceiveOutOrder(ERPPickOutOrderDTO eRPPickOutOrderDTO) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.OrderNo).Includes(x => x.Details).First(); |
| | | if (purchaseOrder == null) |
| | | if (eRPPickOutOrderDTO == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°éè´åä¿¡æ¯"); |
| | | return content.Error("åºåºä¿¡æ¯ä¸è½ä¸ºç©º"); |
| | | } |
| | | if (purchaseOrder.Details == null || purchaseOrder.Details.Count == 0) |
| | | Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == eRPPickOutOrderDTO.WarehouseCode); |
| | | if (warehouse == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°éè´åæç»ä¿¡æ¯"); |
| | | return content.Error($"ä»åºä¿¡æ¯ä¸åå¨{eRPPickOutOrderDTO.WarehouseCode}"); |
| | | } |
| | | if (_supplierInfoRepository.QueryFirst(x => x.SupplierCode == model.SCode) == null) |
| | | //è·åææç©æ |
| | | List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.WarehouseId == warehouse.WarehouseId && x.MaterielInvOrgId == MaterielInvOrgEnum.æ°å.ObjToInt()); |
| | | |
| | | //夿æ¯å¦åå¨ç©æ |
| | | PickDetailItem? deliveryDetailItem = eRPPickOutOrderDTO.PickDetail.FirstOrDefault(x => !materielInfos.Select(x => x.MaterielCode).Contains(x.MaterialCode)); |
| | | if (deliveryDetailItem != null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°ä¾åºåç¼ç ã{model.SCode}ãçä¿¡æ¯"); |
| | | return content.Error($"ç©æä¿¡æ¯{deliveryDetailItem.MaterialCode}ä¸åå¨"); |
| | | } |
| | | List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData(); |
| | | List<Dt_MaterielInfo> materielInfos = _materielInfoRepository.QueryData(); |
| | | List<Dt_PurchaseOrderDetail> purchaseOrderDetails = new List<Dt_PurchaseOrderDetail>(); |
| | | List<Dt_PurchaseOrderDetail> updatePurchaseOrderDetails = new List<Dt_PurchaseOrderDetail>(); |
| | | List<int> detailIds = new List<int>(); |
| | | foreach (var item in model.MList) |
| | | |
| | | //è·åææä¿¡æ¯ |
| | | List<Dt_PickOutOrder> outOrders = BaseDal.Db.Queryable<Dt_PickOutOrder>().Includes(x => x.Details).ToList(); |
| | | |
| | | if (eRPPickOutOrderDTO.OperateType == 1) |
| | | { |
| | | Dt_Warehouse? warehouse = warehouses.FirstOrDefault(x => x.WarehouseCode == item.WaId); |
| | | if (warehouse == null) |
| | | //夿é夿å
¥ |
| | | Dt_PickOutOrder? pickOutOrderOld = outOrders.FirstOrDefault(x => x.PickCode == eRPPickOutOrderDTO.PickCode); |
| | | if (pickOutOrderOld != null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°ä»åºä¿¡æ¯"); |
| | | return content.Error($"åå·{pickOutOrderOld.PickCode}ä¿¡æ¯å·²åå¨"); |
| | | } |
| | | Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MCode); |
| | | if (materielInfo == null) |
| | | List<Dt_PickOutOrderDetail> pickOutOrderDetails = eRPPickOutOrderDTO.PickDetail.Select(x => _mapper.Map<Dt_PickOutOrderDetail>(x)).ToList(); |
| | | Dt_PickOutOrder pickOutOrderAdd = _mapper.Map<Dt_PickOutOrder>(eRPPickOutOrderDTO); |
| | | pickOutOrderDetails.ForEach(x => |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°ç©æç¼ç ã{item.MCode}ãçä¿¡æ¯"); |
| | | } |
| | | Dt_PurchaseOrderDetail? purchaseOrderDetail = purchaseOrder.Details.FirstOrDefault(x => x.RowNo == item.RowId); |
| | | if (purchaseOrderDetail == null) |
| | | { |
| | | purchaseOrderDetail = new Dt_PurchaseOrderDetail() |
| | | { |
| | | MaterielCode = item.MCode, |
| | | PurchaseDetailQuantity = item.Qty, |
| | | PurchaseDetailReceiveQty = 0, |
| | | PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt(), |
| | | Unit = item.Unit, |
| | | WarehouseId = warehouse.WarehouseId, |
| | | RowNo = item.RowId, |
| | | }; |
| | | purchaseOrderDetails.Add(purchaseOrderDetail); |
| | | } |
| | | else |
| | | { |
| | | purchaseOrderDetail.MaterielCode = item.MCode; |
| | | purchaseOrderDetail.PurchaseDetailQuantity = item.Qty; |
| | | purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt(); |
| | | purchaseOrderDetail.Unit = item.Unit; |
| | | purchaseOrderDetail.WarehouseId = warehouse.WarehouseId; |
| | | purchaseOrderDetail.RowNo = item.RowId; |
| | | updatePurchaseOrderDetails.Add(purchaseOrderDetail); |
| | | detailIds.Add(purchaseOrderDetail.Id); |
| | | } |
| | | Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(t => t.MaterielCode == x.MaterialCode); |
| | | x.MaterielName = materielInfo?.MaterielName; |
| | | x.Unit = materielInfo?.MaterielUnit; |
| | | }); |
| | | pickOutOrderAdd.Details = pickOutOrderDetails; |
| | | pickOutOrderAdd.WarehouseId = warehouse.WarehouseId; |
| | | //æ°å¢ |
| | | BaseDal.Db.InsertNav(pickOutOrderAdd).Include(x => x.Details).ExecuteCommand(); |
| | | |
| | | } |
| | | |
| | | purchaseOrder.OrderQuantity = model.Amount; |
| | | purchaseOrder.OrderDate = model.OrderDate; |
| | | purchaseOrder.PurchaseOrderNo = model.OrderNo; |
| | | purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.NotReceived.ObjToInt(); |
| | | purchaseOrder.PurchaseOrderType = model.Type; |
| | | purchaseOrder.SupplierCode = model.SCode; |
| | | |
| | | List<Dt_PurchaseOrderDetail> deletePurchaseOrderDetails = purchaseOrder.Details.Where(x => !detailIds.Contains(x.Id)).ToList(); |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | foreach (var item in deletePurchaseOrderDetails) |
| | | //else if (eRPPurchaseOrderDTO.OperateType == 2) |
| | | //{ |
| | | // //夿æ¯å¦åå¨ |
| | | // Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode); |
| | | // if (userInfoOld == null) |
| | | // { |
| | | // return content.Error($"æ´æ°å·¥å·{eRPUserInfoDTO.StaffCode}ï¼åå·¥{eRPUserInfoDTO.StaffName}ä¸åå¨"); |
| | | // } |
| | | // Dt_UserInfo userInfo = _mapper.Map<Dt_UserInfo>(eRPUserInfoDTO); |
| | | // userInfo.Id = userInfoOld.Id; |
| | | // Sys_User user = _userRepository.QueryFirst(x => x.UserName == userInfo.Code); |
| | | // if (userInfoOld == null) |
| | | // { |
| | | // return content.Error($"æ´æ°å·¥å·{eRPUserInfoDTO.StaffCode}ï¼åå·¥{eRPUserInfoDTO.StaffName}ï¼WMSè´¦å·ä¸åå¨"); |
| | | // } |
| | | // user.Enable = (byte)userInfo.State; |
| | | // user.UserTrueName = userInfo.Name; |
| | | // //æ´æ° |
| | | // BaseDal.UpdateData(userInfo); |
| | | // _userRepository.UpdateData(user); |
| | | //} |
| | | //else if (eRPPurchaseOrderDTO.OperateType == 3) |
| | | //{ |
| | | // //夿æ¯å¦åå¨ |
| | | // Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode); |
| | | // if (userInfoOld == null) |
| | | // { |
| | | // return content.Error($"æ´æ°å·¥å·{eRPUserInfoDTO.StaffCode}ï¼åå·¥{eRPUserInfoDTO.StaffName}ä¸åå¨"); |
| | | // } |
| | | // BaseDal.DeleteData(userInfoOld); |
| | | //} |
| | | else |
| | | { |
| | | _purchaseOrderDetailRepository.DeleteAndMoveIntoHty(item, OperateTypeEnum.人工å é¤); |
| | | return content.Error("æªæ¾å°æä½ç±»å"); |
| | | } |
| | | |
| | | _purchaseOrderDetailRepository.UpdateData(updatePurchaseOrderDetails); |
| | | _purchaseOrderDetailRepository.AddData(purchaseOrderDetails); |
| | | |
| | | BaseDal.UpdateData(purchaseOrder); |
| | | _unitOfWorkManage.CommitTran(); |
| | | |
| | | return WebResponseContent.Instance.OK(); |
| | | //æ´æ°æ°æ® |
| | | return content.OK("æ¥æ¶æå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | public WebResponseContent DeletePurchaseOrder(PurchaseOrderModel model) |
| | | /// <summary> |
| | | /// æ¥æ¶ERPæåéå®éè´§ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent ReceiveProDeliveryBackOrder(ERPProDeliverBackDTO eRPProDeliverBackDTO) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.OrderNo).Includes(x => x.Details).First(); |
| | | if (purchaseOrder == null) |
| | | if (eRPProDeliverBackDTO == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°éè´åä¿¡æ¯"); |
| | | return content.Error("éå®éè´§ä¿¡æ¯ä¸è½ä¸ºç©º"); |
| | | } |
| | | if (purchaseOrder.Details == null || purchaseOrder.Details.Count == 0) |
| | | Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == eRPProDeliverBackDTO.WarehouseCode); |
| | | if (warehouse == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°éè´åæç»ä¿¡æ¯"); |
| | | return content.Error($"ä»åºä¿¡æ¯ä¸åå¨{eRPProDeliverBackDTO.WarehouseCode}"); |
| | | } |
| | | Db.DeleteNav(purchaseOrder).Include(x => x.Details).ExecuteCommand(); |
| | | return WebResponseContent.Instance.OK(); |
| | | //è·åææç©æ |
| | | List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.WarehouseId == warehouse.WarehouseId && x.MaterielInvOrgId == MaterielInvOrgEnum.æ°å.ObjToInt()); |
| | | |
| | | //夿æ¯å¦åå¨ç©æ |
| | | DeliveryBackDetailItem? deliveryBackDetailItem = eRPProDeliverBackDTO.DeliveryBackDetail.FirstOrDefault(x => !materielInfos.Select(x => x.MaterielCode).Contains(x.MaterialCode)); |
| | | if (deliveryBackDetailItem != null) |
| | | { |
| | | return content.Error($"ç©æä¿¡æ¯{deliveryBackDetailItem.MaterialCode}ä¸åå¨"); |
| | | } |
| | | |
| | | //è·åææå®¢æ· |
| | | List<Dt_CustomerInfo> customerInfos = _basicRepository.CustomerInfoRepository.QueryData(); |
| | | //夿æ¯å¦åå¨å®¢æ· |
| | | DeliveryBackDetailItem? CheckCustomerCode = eRPProDeliverBackDTO.DeliveryBackDetail.FirstOrDefault(x => !customerInfos.Select(x => x.CustomerCode).Contains(x.Customer)); |
| | | |
| | | if (CheckCustomerCode != null) |
| | | { |
| | | return content.Error($"客æ·ä¿¡æ¯{CheckCustomerCode.Customer}ä¸åå¨"); |
| | | } |
| | | //è·åææéå®åºåºä¿¡æ¯ |
| | | List<Dt_ProDeliveryOrder> proDeliveryOrdersOld = BaseDal.Db.Queryable<Dt_ProDeliveryOrder>().Includes(x => x.Details).ToList(); |
| | | //夿æ¯å¦åå¨éå®åè´§åå· |
| | | DeliveryBackDetailItem? CheckDeliveryCode = eRPProDeliverBackDTO.DeliveryBackDetail.FirstOrDefault(x => !customerInfos.Select(x => x.CustomerCode).Contains(x.Customer)); |
| | | if (CheckDeliveryCode != null) |
| | | { |
| | | return content.Error($"客æ·ä¿¡æ¯{CheckDeliveryCode.DeliveryCode}ä¸åå¨"); |
| | | } |
| | | //è·åææä¿¡æ¯ |
| | | List<Dt_ProDeliverBackOrder> outOrders = BaseDal.Db.Queryable<Dt_ProDeliverBackOrder>().Includes(x => x.Details).ToList(); |
| | | |
| | | if (eRPProDeliverBackDTO.OperateType == 1) |
| | | { |
| | | //夿é夿å
¥ |
| | | Dt_ProDeliverBackOrder? proDeliverBackOrderOld = outOrders.FirstOrDefault(x => x.DeliveryBackCode == eRPProDeliverBackDTO.DeliveryBackCode); |
| | | if (proDeliverBackOrderOld != null) |
| | | { |
| | | return content.Error($"åå·{proDeliverBackOrderOld.DeliveryBackCode}ä¿¡æ¯å·²åå¨"); |
| | | } |
| | | List<Dt_ProDeliverBackOrderDetail> proDeliverBackOrderDetails = eRPProDeliverBackDTO.DeliveryBackDetail.Select(x => _mapper.Map<Dt_ProDeliverBackOrderDetail>(x)).ToList(); |
| | | Dt_ProDeliverBackOrder proDeliverBackOrderAdd = _mapper.Map<Dt_ProDeliverBackOrder>(eRPProDeliverBackDTO); |
| | | proDeliverBackOrderDetails.ForEach(x => |
| | | { |
| | | Dt_MaterielInfo? materielInfo = materielInfos.FirstOrDefault(t => t.MaterielCode == x.MaterialCode); |
| | | x.MaterielName = materielInfo?.MaterielName; |
| | | x.Unit = materielInfo?.MaterielUnit; |
| | | }); |
| | | proDeliverBackOrderAdd.Details = proDeliverBackOrderDetails; |
| | | proDeliverBackOrderAdd.WarehouseId = warehouse.WarehouseId; |
| | | //æ°å¢ |
| | | BaseDal.Db.InsertNav(proDeliverBackOrderAdd).Include(x => x.Details).ExecuteCommand(); |
| | | |
| | | } |
| | | //else if (eRPPurchaseOrderDTO.OperateType == 2) |
| | | //{ |
| | | // //夿æ¯å¦åå¨ |
| | | // Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode); |
| | | // if (userInfoOld == null) |
| | | // { |
| | | // return content.Error($"æ´æ°å·¥å·{eRPUserInfoDTO.StaffCode}ï¼åå·¥{eRPUserInfoDTO.StaffName}ä¸åå¨"); |
| | | // } |
| | | // Dt_UserInfo userInfo = _mapper.Map<Dt_UserInfo>(eRPUserInfoDTO); |
| | | // userInfo.Id = userInfoOld.Id; |
| | | // Sys_User user = _userRepository.QueryFirst(x => x.UserName == userInfo.Code); |
| | | // if (userInfoOld == null) |
| | | // { |
| | | // return content.Error($"æ´æ°å·¥å·{eRPUserInfoDTO.StaffCode}ï¼åå·¥{eRPUserInfoDTO.StaffName}ï¼WMSè´¦å·ä¸åå¨"); |
| | | // } |
| | | // user.Enable = (byte)userInfo.State; |
| | | // user.UserTrueName = userInfo.Name; |
| | | // //æ´æ° |
| | | // BaseDal.UpdateData(userInfo); |
| | | // _userRepository.UpdateData(user); |
| | | //} |
| | | //else if (eRPPurchaseOrderDTO.OperateType == 3) |
| | | //{ |
| | | // //夿æ¯å¦åå¨ |
| | | // Dt_UserInfo? userInfoOld = OlduserInfos.FirstOrDefault(x => x.Code == eRPUserInfoDTO.StaffCode); |
| | | // if (userInfoOld == null) |
| | | // { |
| | | // return content.Error($"æ´æ°å·¥å·{eRPUserInfoDTO.StaffCode}ï¼åå·¥{eRPUserInfoDTO.StaffName}ä¸åå¨"); |
| | | // } |
| | | // BaseDal.DeleteData(userInfoOld); |
| | | //} |
| | | else |
| | | { |
| | | return content.Error("æªæ¾å°æä½ç±»å"); |
| | | } |
| | | //æ´æ°æ°æ® |
| | | return content.OK("æ¥æ¶æå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | content.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | public WebResponseContent ClosePurchaseOrder(PurchaseOrderModel model) |
| | | { |
| | | try |
| | | { |
| | | 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($"æªæ¾å°éè´åä¿¡æ¯"); |
| | | } |
| | | if (purchaseOrder.Details == null || purchaseOrder.Details.Count == 0) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°éè´åæç»ä¿¡æ¯"); |
| | | } |
| | | purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Closed.ObjToInt(); |
| | | _unitOfWorkManage.BeginTran(); |
| | | BaseDal.UpdateData(purchaseOrder); |
| | | //BaseDal.DeleteAndMoveIntoHty(purchaseOrder, OperateTypeEnum.å
³é); |
| | | foreach (var item in purchaseOrder.Details) |
| | | { |
| | | item.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Closed.ObjToInt(); |
| | | //_purchaseOrderDetailRepository.DeleteAndMoveIntoHty(item, OperateTypeEnum.å
³é); |
| | | _purchaseOrderDetailRepository.UpdateData(item); |
| | | } |
| | | _unitOfWorkManage.CommitTran(); |
| | | return WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | } |
| | | } |