protected override void DeleteDomainObjects(ArrayList domainObjects) { WarehouseFacade _WarehouseFacade = new WarehouseFacade(base.DataProvider); InventoryFacade _InventoryFacade = new InventoryFacade(this.DataProvider); object objStorloctrans = _WarehouseFacade.GetStorloctrans(txtTransNoQuery.Text); Storloctrans storloctrans = objStorloctrans as Storloctrans; if (storloctrans == null) { WebInfoPublish.Publish(this, txtTransNoQuery.Text + "转储单不存在!", this.languageComponent1); return; } if (storloctrans.Status == "Close") { WebInfoPublish.Publish(this, "转储单已关闭不能删除!", this.languageComponent1); return; } ArrayList array = this.gridHelper.GetCheckedRows(); DBDateTime dbDateTime = FormatHelper.GetNowDBDateTime(DataProvider); int mDate = dbDateTime.DBDate; int mTime = dbDateTime.DBTime; foreach (GridRecord row in array) { string transno = storloctrans.Transno; string fromCartonno = row.Items.FindItemByKey("FCartonNo").Text; string cartonno = row.Items.FindItemByKey("TCartonNo").Text; StorloctransDetailCarton storCartonno = (StorloctransDetailCarton)_WarehouseFacade.GetStorloctransdetailcarton(transno, fromCartonno, cartonno); if (storCartonno != null) { _WarehouseFacade.DeleteStorloctransdetailcarton(storCartonno); StorageDetail stor = (StorageDetail)_WarehouseFacade.GetStorageDetail(fromCartonno); if (stor != null) { stor.FreezeQty = stor.FreezeQty - (int)storCartonno.Qty; stor.AvailableQty = stor.AvailableQty + (int)storCartonno.Qty; _WarehouseFacade.UpdateStorageDetail(stor); } object[] objs = _WarehouseFacade.GetStorageDetailSnbyCartonNoBlock(fromCartonno); if (objs != null && objs.Length > 0) { foreach (StorageDetailSN storageDetailSN in objs) { storageDetailSN.PickBlock = "N"; storageDetailSN.MaintainUser = GetUserCode(); storageDetailSN.MaintainDate = mDate; storageDetailSN.MaintainTime = mTime; _InventoryFacade.UpdateStorageDetailSN(storageDetailSN); } } StorloctransDetailSN[] storSns = _WarehouseFacade.GetStorloctransDetailSNs(transno, fromCartonno); foreach (StorloctransDetailSN sn in storSns) { _WarehouseFacade.DeleteStorloctransdetailsn(sn); } if (storCartonno.Qty != 0) { StorloctransDetail cartonnoDetail = (StorloctransDetail)_WarehouseFacade.GetStorloctransdetail(transno, storCartonno.MCode); if (cartonnoDetail != null) { cartonnoDetail.Status = "Pick"; cartonnoDetail.MaintainUser = GetUserCode(); cartonnoDetail.MaintainDate = mDate; cartonnoDetail.MaintainTime = mTime; _WarehouseFacade.UpdateStorloctransdetail(cartonnoDetail); } } } } }