| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | /// <summary> | 
					
						
							|  |  |  |  | ///WCF service | 
					
						
							|  |  |  |  | ///FOR TABLE t_erp_purch | 
					
						
							|  |  |  |  | ///By wm   | 
					
						
							|  |  |  |  | ///on 05/10/2023 | 
					
						
							|  |  |  |  | /// </summary> | 
					
						
							|  |  |  |  |    | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using System.Data; | 
					
						
							|  |  |  |  | using DeiNiu.wms.Data.Model.Wcf ; | 
					
						
							|  |  |  |  | using DeiNiu.wms.Data.Model; | 
					
						
							|  |  |  |  | using System.Transactions; | 
					
						
							|  |  |  |  | using DeiNiu.Utils; | 
					
						
							|  |  |  |  | using System; | 
					
						
							|  |  |  |  | using DeiNiu.Wcf.erp.wcfData; | 
					
						
							|  |  |  |  | namespace DeiNiu.Wcf | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名 。 | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |     public class T_ERP_PURCH :baseSvc, IErp_purch ,IOrder | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |     { | 
					
						
							|  |  |  |  |         #region options | 
					
						
							|  |  |  |  |       /*: basicService,  | 
					
						
							|  |  |  |  |         private static  lErp_purch  _lErp_purch ; | 
					
						
							|  |  |  |  |          lErp_purch  lErp_purchObj | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 if ( _lErp_purch  == null ||   _lErp_purch.operId != getOperId()) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                      _lErp_purch= new  lErp_purch(getOperId()); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 return  _lErp_purch; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |        */ | 
					
						
							|  |  |  |  |        #endregion  | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |         public Result add(ErpPurch obj) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-01-23 22:53:20 +08:00
										 |  |  |  |             log.Debug("新增销售单 --->" + obj.pur_order); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |             using (TransactionScope scope = new TransactionScope()) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 try | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                     if (obj == null || obj.ErpPurchDetails == null) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         throw new ArgumentNullException("非法的参数格式;订单明细不能为空"); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                     foreach (WcfErp_purch_d d in obj.ErpPurchDetails) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         d.getDbObject().Add(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                     obj.wms_state = 0; | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                    int id= obj.getDbObject().Add(); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |                     scope.Complete(); | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                     return new Result(id,enumDbResult.成功); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |                 catch (ConstraintException ex) | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2025-01-23 22:53:20 +08:00
										 |  |  |  |                     log.Error(ex); | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                     return new Result( enumDbResult.记录已存在,ex.Message); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |                 catch (Exception er) | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2025-01-23 22:53:20 +08:00
										 |  |  |  |                     log.Error(er); | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                     return new Result(enumDbResult.失败, er.Message);   | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |               | 
					
						
							|  |  |  |  |              | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public enumDbResult update(WcfErp_purch obj) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Erp_purch purchObj = obj.getDbObject(); | 
					
						
							|  |  |  |  |             if (purchObj.ID <= 0) return enumDbResult.失败; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             Erp_purch tmp = new Erp_purch(purchObj.ID); | 
					
						
							|  |  |  |  |             if (!tmp.pur_order.Equals(purchObj.pur_order)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return enumDbResult.失败; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (tmp.wms_state > (int)enumInStockOrderStatus.待收货) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return enumDbResult.数据状态不允许此操作; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             if (purchObj.Update() == 1) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return enumDbResult.成功; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return enumDbResult.成功; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public enumDbResult delete(WcfErp_purch obj) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Erp_purch purchObj = obj.getDbObject(); | 
					
						
							|  |  |  |  |             if (purchObj.ID <= 0) return enumDbResult.失败; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             Erp_purch tmp = new Erp_purch(purchObj.ID); | 
					
						
							|  |  |  |  |           | 
					
						
							|  |  |  |  |             if (tmp.wms_state > (int)enumInStockOrderStatus.待收货) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return enumDbResult.数据状态不允许此操作; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return obj.getDbObject().Delete()>0? enumDbResult.成功: enumDbResult.失败; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |          #region options | 
					
						
							|  |  |  |  |        /* | 
					
						
							|  |  |  |  |         public List<Result> updateList(List<WcfErp_purch> objs) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |               | 
					
						
							|  |  |  |  |             List<Result> results = new List<Result>(); | 
					
						
							|  |  |  |  |            // using (TransactionScope scope = new TransactionScope()) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 foreach (WcfErp_purch obj in objs) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     Result rs = new Result(obj.id, obj.getDbObject().Update()); | 
					
						
							|  |  |  |  |                     results.Add(rs); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |               //  scope.Complete(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return results; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public List<Result> addList(List<WcfErp_purch> objs) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             List<Result> results = new List<Result>(); | 
					
						
							|  |  |  |  |            // using (TransactionScope scope = new TransactionScope()) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 foreach (WcfErp_purch obj in objs) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     Result rs = new Result( obj.getDbObject().Add(),1); | 
					
						
							|  |  |  |  |                     results.Add(rs); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |               //  scope.Complete(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return results; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public List<Result> deleteList(List<WcfErp_purch> objs) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             List<Result> results = new List<Result>(); | 
					
						
							|  |  |  |  |            // using (TransactionScope scope = new TransactionScope()) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 foreach (WcfErp_purch obj in objs) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     Result rs = new Result(obj.id, obj.getDbObject().Delete()); | 
					
						
							|  |  |  |  |                     results.Add(rs); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |               //  scope.Complete(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return results; | 
					
						
							|  |  |  |  |         }*/ | 
					
						
							|  |  |  |  |   #endregion  | 
					
						
							|  |  |  |  |        public ErpPurch getObj(int Id) | 
					
						
							| 
									
										
										
										
											2025-01-23 22:53:20 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             log.Debug("读取采购入库单 by ID --->" + Id); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             Erp_purch dbObj = new Erp_purch(Id); | 
					
						
							|  |  |  |  |             ErpPurch obj = new ErpPurch(dbObj); | 
					
						
							|  |  |  |  |             obj.ErpPurchDetails = getLst(obj.pur_order); | 
					
						
							|  |  |  |  |             return obj; | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |         public ErpPurch getOrder(string orderNo) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-01-23 22:53:20 +08:00
										 |  |  |  |             log.Debug("读取采购入库单 by orderNo --->" + orderNo); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             Erp_purch dbObj = new Erp_purch(orderNo); | 
					
						
							|  |  |  |  |             ErpPurch obj = new ErpPurch(dbObj); | 
					
						
							|  |  |  |  |             obj.ErpPurchDetails = getLst(obj.pur_order); | 
					
						
							|  |  |  |  |             return obj; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         List<WcfErp_purch_d> getLst(string orderNo) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             List<WcfErp_purch_d> lstwcf = new List<WcfErp_purch_d>(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             List< Erp_purch_d> lst = new  Erp_purch_d().getList(orderNo); | 
					
						
							|  |  |  |  |             foreach ( Erp_purch_d d in lst) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 lstwcf.Add(new WcfErp_purch_d().getWcfObject(d)); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return lstwcf; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public WcfErp_purchList query(string condition, int pageno) | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-01-23 22:53:20 +08:00
										 |  |  |  |             log.Debug("读取采购入库单 by condition --->" + condition + ",pageNo " + pageno); | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |             condition = filterRisk(condition); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             WcfErp_purchList objLst = new WcfErp_purchList(); | 
					
						
							|  |  |  |  |             List<WcfErp_purch> lst = new List<WcfErp_purch>(); | 
					
						
							|  |  |  |  |               Erp_purch dbObj = new   Erp_purch(); | 
					
						
							|  |  |  |  |             dbObj.rownumStart =(Convert.ToInt16(  pageno)-1)*  WmsConstants.PAGER_SIZE; | 
					
						
							|  |  |  |  |             dbObj.rownumEnd = dbObj.rownumStart + DeiNiu.Utils.WmsConstants.PAGER_SIZE; | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |             try | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 DataSet ds = dbObj.Query(condition); | 
					
						
							|  |  |  |  |                 if (ds.Tables.Count > 1) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     DataTable dt = ds.Tables[0]; | 
					
						
							|  |  |  |  |                     foreach (DataRow dr in dt.Rows) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         lst.Add(new WcfErp_purch(dr)); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     objLst.rows = Convert.ToInt32(ds.Tables[1].Rows[0][0].ToString()); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 objLst.list = lst; | 
					
						
							|  |  |  |  |                 objLst.page = Convert.ToInt16(pageno); | 
					
						
							|  |  |  |  |                 objLst.pageSize = WmsConstants.PAGER_SIZE; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 objLst.pageCnt = objLst.rows / WmsConstants.PAGER_SIZE; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             catch (Exception er) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 objLst.error = er.Message; | 
					
						
							|  |  |  |  |             }  | 
					
						
							|  |  |  |  |              | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             return objLst; | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |         /* | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         public enumDbResult delete(string orderNo) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |           | 
					
						
							|  |  |  |  |             Erp_purch tmp = new Erp_purch(orderNo); | 
					
						
							|  |  |  |  |             if (tmp.wms_state > (int)enumInStockOrderStatus.待收货) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return enumDbResult.数据状态不允许此操作; | 
					
						
							|  |  |  |  |             }  | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             if (tmp.deleteOrder(orderNo)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return enumDbResult.成功; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return enumDbResult.失败;  | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |         */ | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         public List<WcfErp_receiveValidDetail> getInStockDetail(string preInOrder) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             List<WcfErp_receiveValidDetail> lst = new List<WcfErp_receiveValidDetail>(); | 
					
						
							|  |  |  |  |             Erp_receiveValidDetail dbObj = new Erp_receiveValidDetail(); | 
					
						
							|  |  |  |  |             DataTable dt = dbObj.getDetailByOrder(preInOrder); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             foreach (DataRow dr in dt.Rows) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 lst.Add(new WcfErp_receiveValidDetail(dr)); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return lst; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |         public Result complete(string orderNo) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |             Erp_purch tmp = new Erp_purch(orderNo); | 
					
						
							|  |  |  |  |             if(tmp.ID == 0) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return new Result( " 不存在订单 " +orderNo ); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             if (tmp.wms_state < (int)enumInStockOrderStatus.已入库) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return new Result(enumDbResult.数据状态不允许此操作); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             tmp.updateStockStatus(orderNo, enumInStockOrderStatus.完结回传ERP, enumReceiveStockDetailStatus.完结回传ERP,LoginInfo.UserId); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             if (tmp.deleteOrder(orderNo)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return new Result(enumDbResult.成功); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return new Result(enumDbResult.失败); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |         public Result cancel(string orderNo) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Erp_purch tmp = new Erp_purch(orderNo); | 
					
						
							|  |  |  |  |             if (tmp.wms_state > (int)enumInStockOrderStatus.已入库) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return new Result(enumDbResult.数据状态不允许此操作); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |   | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             if (tmp.deleteOrder(orderNo)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return new Result(enumDbResult.成功); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return new Result(enumDbResult.失败); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |   | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  |  } |