/// ///LOGIC CLASS FOR TABLE t_wmsGoods ///By wm with codesmith. ///on 05/04/2017 /// using System; using System.Collections.Generic; using System.Linq; using System.Text; using DeiNiu.wms.Data.Model; using System.Data; using System.Transactions; using DeiNiu.Data.BaseObject; namespace DeiNiu.wms.Logical { [Serializable] public class lWmsGoods :lbase { WmsGoods _obj; public lWmsGoods() { initialize(); } public lWmsGoods(int operId):base(operId) { initialize(); } public WmsGoods getWmsGoods { get { if(_obj == null) { _obj = new WmsGoods(); } return _obj; } } /// /// get all data /// public DataSet getAllData() { return _obj.Query(); } /// /// get all data /// public DataSet getAllActiveData() { return _obj.QueryActived(); } /// /// get a record by id /// public void initialize(int id) { _obj = id != 0 ? new WmsGoods(id) : new WmsGoods(); } /// /// get a record by id 0 /// public void initialize() { initialize(0); } /// /// get a record by id /// public void initialize(DataRow dr) { _obj = new WmsGoods(dr); } //begin cust db operation, query, excute sql etc. /* /// /// query with like, return talbe and record cnt. /// public DataSet Query(string querystr, int rownumStart, int rownumEnd) { if (rownumEnd > rownumStart && rownumStart > 0) { _obj.rownumStart = rownumStart; _obj.rownumEnd = rownumEnd; } //if (string.IsNullOrEmpty(querystr)) //{ // return _obj.Query(); //} string condition = ""; string[] parameters = querystr.Split(";".ToCharArray()); foreach (string value in parameters) { if (string.IsNullOrEmpty(value)) { continue; } string[] par = value.Split("#".ToCharArray()); condition += par.Length == 0 ? "" : " and "; foreach (string p in par) { condition += p; } } return _obj.Query(condition); } */ /// /// update in a transaction scrop /// public void update(List goods) { if (valid()) { using (TransactionScope scope = new TransactionScope()) { foreach (WmsGoods good in goods) { good.Update(); } _obj = goods[goods.Count - 1]; scope.Complete(); } } } private bool valid() { return true; } protected override BaseModel getModel() { return _obj; } internal DataTable QueryPacking(string goodsId) { return _obj.queryPacking(goodsId); } public void updatePackInfo(int id, string goodsId, string barcode, int packingQty, string manufacturer2, string spec, decimal chang, decimal kuan, decimal gao, decimal weight, int statckLayers, int stackLayNums, bool isDelete) { Erp_packing packing = new Erp_packing(id); if (isDelete) { packing.Delete(); return; } DataTable dt = getWmsGoods.getGoodsDetailBybarcode(barcode); if (dt.Rows.Count > 0) { string gdid= dt.Rows[0]["goodsId"].ToString().Trim(); if(!goodsId.Trim().ToUpper().Equals(gdid.Trim().ToUpper())) throw new Exception("条码 " + barcode + " 已关联商品 " + dt.Rows[0]["goodsId"].ToString()); } packing.barcode = barcode.Replace("\r\n", "").Replace("\n", ""); packing.goodsId = goodsId; packing.weight = weight; packing.chang = chang; packing.kuan = kuan; packing.gao = gao; packing.weight = weight; packing.spec = spec; packing.manufacturer2 = manufacturer2; packing.stackLayers = statckLayers; packing.stackLayNums = stackLayNums; packing.packingQty = packingQty; ErpGoods eg = new ErpGoods(goodsId); eg.bigCount = packingQty; packing.packingUnit = eg.unit; WmsGoods wg = new WmsGoods(goodsId); wg.bigCount = packingQty; log.Debug("update goods big count to " + packingQty); using (TransactionScope scope = new TransactionScope()) { if (id > 0) { packing.Update(); } else { packing.Add(); } eg.Update(); wg.Update(); scope.Complete(); } } internal void goodsMaintain(string goodsId,decimal fullMax, decimal bulkMax, decimal batch1Max, decimal batch2Max, decimal batch3Max, int ABC, int storeType, string barcode, int expiredDays, bool canSeedOut) { barcode= barcode.Replace("\r\n", "").Replace("\n", ""); WmsGoods goods = new WmsGoods(goodsId); if (bulkMax > 0) goods.bulkMax = bulkMax; if (batch1Max > 0) goods.batchMax1 = batch1Max; if (batch2Max > 0) goods.batchMax2 = batch2Max; if (batch3Max > 0) goods.batchMax3 = batch3Max; if (fullMax > 0) goods.full_max = fullMax; if (ABC > 0) goods.ABC = ABC; if (storeType > 0) goods.part = storeType; // if (bigCount > 0) // goods.bigCount = bigCount; ErpGoods erpgd = new ErpGoods(goodsId); using (TransactionScope scope = new TransactionScope()) { if (erpgd.expiryDays != expiredDays) { erpgd.barCode = barcode; erpgd.expiryDays = expiredDays; erpgd.Update(); } if (erpgd.barCode != barcode) { if (!string.IsNullOrEmpty(barcode)) { DataTable dt = getWmsGoods.getGoodsDetailBybarcode(barcode); if (dt.Rows.Count > 0) { string gdid = dt.Rows[0]["goodsId"].ToString().Trim(); if (!goodsId.Trim().ToUpper().Equals(gdid.Trim().ToUpper())) throw new Exception("条码 " + barcode + " 已关联商品 " + dt.Rows[0]["goodsId"].ToString()); } Erp_packing packing = new Erp_packing(barcode); if (packing.ID == 0) { packing.barcode = barcode; packing.goodsId = goodsId; packing.packingQty = goods.bigCount; packing.Add(); } } } goods.canSeedOut = canSeedOut; goods.barcode = barcode; goods.expiryDays = expiredDays; goods.Update(); scope.Complete(); } } internal DataTable queryByKeyWords(string keywords) { return getWmsGoods.queryByKeyWords(keywords); } } }