| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | /// <summary> | 
					
						
							|  |  |  |  | ///WCF service | 
					
						
							|  |  |  |  | ///FOR TABLE t_erp_sale | 
					
						
							|  |  |  |  | ///By wm   | 
					
						
							|  |  |  |  | ///on 05/09/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_SALE :baseSvc, IErp_sale , IOrder | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |     { | 
					
						
							|  |  |  |  |         #region options | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |         /*: basicService,  | 
					
						
							|  |  |  |  |           private static  lErp_sale  _lErp_sale ; | 
					
						
							|  |  |  |  |            lErp_sale  lErp_saleObj | 
					
						
							|  |  |  |  |           { | 
					
						
							|  |  |  |  |               get | 
					
						
							|  |  |  |  |               { | 
					
						
							|  |  |  |  |                   if ( _lErp_sale  == null ||   _lErp_sale.operId != getOperId()) | 
					
						
							|  |  |  |  |                   { | 
					
						
							|  |  |  |  |                        _lErp_sale= new  lErp_sale(getOperId()); | 
					
						
							|  |  |  |  |                   } | 
					
						
							|  |  |  |  |                   return  _lErp_sale; | 
					
						
							|  |  |  |  |               } | 
					
						
							|  |  |  |  |           } | 
					
						
							|  |  |  |  |          */ | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         ErpSale IErp_sale.getObj(int id) | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-01-23 22:53:20 +08:00
										 |  |  |  |             log.Debug("读取出库单 by id --->" + id); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             ErpSale obj = new ErpSale(new Erp_sale(id)); | 
					
						
							|  |  |  |  |             obj.ErpSaleDetails = getLst(obj.sale_order); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return obj; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |         public ErpSale getOrder(string orderNo) | 
					
						
							| 
									
										
										
										
											2025-01-23 22:53:20 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             log.Debug("读取出库单 by orderNo --->" + orderNo); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             ErpSale obj = new ErpSale(new Erp_sale(orderNo)); | 
					
						
							|  |  |  |  |            | 
					
						
							|  |  |  |  |             | 
					
						
							|  |  |  |  |             obj.ErpSaleDetails = getLst(orderNo); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return obj; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |          List<WcfErp_sale_d> getLst(string orderNo) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             List<WcfErp_sale_d> lstwcf = new List<WcfErp_sale_d>(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             List<Erp_sale_d> lst = new Erp_sale_d().getList(orderNo); | 
					
						
							|  |  |  |  |             foreach (Erp_sale_d d in lst) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 lstwcf.Add(new WcfErp_sale_d().getWcfObject(d)); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |              | 
					
						
							|  |  |  |  |             return lstwcf; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         public WcfErp_saleList query(string condition, int pageno) | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |             condition = filterRisk(condition); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             WcfErp_saleList objLst = new WcfErp_saleList(); | 
					
						
							|  |  |  |  |             List<WcfErp_sale> lst = new List<WcfErp_sale>(); | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |             Erp_sale dbObj = new Erp_sale(); | 
					
						
							|  |  |  |  |             dbObj.rownumStart = (Convert.ToInt16(pageno) - 1) * WmsConstants.PAGER_SIZE; | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             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_sale(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
										 |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             return objLst; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |         Result IErp_sale.add(ErpSale obj) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-01-23 22:53:20 +08:00
										 |  |  |  |             log.Debug("新增入库单 --->" + obj.sale_order); | 
					
						
							| 
									
										
										
										
											2024-02-06 19:36:47 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |             int id; | 
					
						
							| 
									
										
										
										
											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.ErpSaleDetails == null) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         throw new ArgumentNullException("非法的参数格式;订单明细不能为空"); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                     foreach (WcfErp_sale_d d in obj.ErpSaleDetails) | 
					
						
							|  |  |  |  |                     { | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                         if (d.count <= 0) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             throw new ArgumentNullException("出库数量不能小于等于0"); | 
					
						
							|  |  |  |  |                         } | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |                         d.getDbObject().Add(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                     obj.wms_state = 0; | 
					
						
							|  |  |  |  |                     id =obj.getDbObject().Add(); | 
					
						
							| 
									
										
										
										
											2025-01-23 22:53:20 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |                     log.Debug("<----- 新增结束 " + obj.sale_order); | 
					
						
							| 
									
										
										
										
											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.记录已存在); | 
					
						
							| 
									
										
										
										
											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
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |                | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |            | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |           | 
					
						
							|  |  |  |  |          | 
					
						
							|  |  |  |  |   | 
					
						
							|  |  |  |  |         public Result complete(string orderNo) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             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) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |             WmsOutRequest wor = new WmsOutRequest(orderNo); | 
					
						
							|  |  |  |  |            if( wor.state <(int) enumOutStockRequestStatus.正在分拣) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |                 //cancel pickorder,picktasks,erp_sale order | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |             return new Result(enumDbResult.失败); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |         public List<WcfErp_sale_d> getOutStockDetail(string pickOrder) | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |             List<WcfErp_sale_d> lstwcf = new List<WcfErp_sale_d>(); | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |             List<Erp_sale_d> lst = new Erp_sale_d().getPickList(pickOrder); | 
					
						
							|  |  |  |  |             foreach (Erp_sale_d d in lst) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 lstwcf.Add(new WcfErp_sale_d().getWcfObject(d)); | 
					
						
							|  |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-04 22:41:19 +08:00
										 |  |  |  |             return lstwcf; | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2023-05-23 16:13:17 +08:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  |  } |