/// ///WCF service ///FOR TABLE t_erp_purch ///By wm ///on 05/10/2023 /// 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 和配置文件中的类名 。 public class T_ERP_PURCH :baseSvc, IErp_purch ,IOrder { #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 public Result add(ErpPurch obj) { log.Debug("add called --->" + obj); using (TransactionScope scope = new TransactionScope()) { try { if (obj == null || obj.ErpPurchDetails == null) { throw new ArgumentNullException("非法的参数格式;订单明细不能为空"); } foreach (WcfErp_purch_d d in obj.ErpPurchDetails) { d.getDbObject().Add(); } obj.wms_state = 0; int id= obj.getDbObject().Add(); scope.Complete(); return new Result(id,enumDbResult.成功); } catch (ConstraintException ex) { return new Result( enumDbResult.记录已存在,ex.Message); } catch (Exception er) { return new Result(enumDbResult.失败, er.Message); } } } 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 updateList(List objs) { List results = new List(); // 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 addList(List objs) { List results = new List(); // 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 deleteList(List objs) { List results = new List(); // 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) { Erp_purch dbObj = new Erp_purch(Id); ErpPurch obj = new ErpPurch(dbObj); obj.ErpPurchDetails = getLst(obj.pur_order); return obj; } public ErpPurch getOrder(string orderNo) { Erp_purch dbObj = new Erp_purch(orderNo); ErpPurch obj = new ErpPurch(dbObj); obj.ErpPurchDetails = getLst(obj.pur_order); return obj; } List getLst(string orderNo) { List lstwcf = new List(); 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) { condition = filterRisk(condition); WcfErp_purchList objLst = new WcfErp_purchList(); List lst = new List(); Erp_purch dbObj = new Erp_purch(); dbObj.rownumStart =(Convert.ToInt16( pageno)-1)* WmsConstants.PAGER_SIZE; dbObj.rownumEnd = dbObj.rownumStart + DeiNiu.Utils.WmsConstants.PAGER_SIZE; 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; } return objLst; } /* 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.失败; } */ public List getInStockDetail(string preInOrder) { List lst = new List(); 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; } public Result complete(string orderNo) { 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.失败); } 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.失败); } } }