protected bool ValidateSaveInput() { if (facade == null) { facade = new InventoryFacade(base.DataProvider); } string pickno = FormatHelper.CleanString(this.txtPickNoQuery.Text, 40); string pickline = FormatHelper.CleanString(this.txtPickLineEdit.Text, 40); //string dqmcode = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtDQMCodeEdit.Text, 40)); PickDetail pickdetail = (PickDetail)facade.GetPickDetail(pickno, pickline); if (pickdetail == null) { WebInfoPublish.Publish(this, "拣货任务令行明细不存在", this.languageComponent1); return(false); } if (txtIsScrapEdit.Text != "Y") { decimal decqty = decimal.Parse(FormatHelper.CleanString(txtQtyEdit.Text)); int invline = Convert.ToInt32(this.txtInvLineEidt.Text); string invno = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtInvNoEidt.Text, 40)); InvoicesDetail invoicesDetail = (InvoicesDetail)facade.GetInvoicesDetail(invno, invline); if (invoicesDetail != null) { decimal pickqty = facade.GetPickDetailQty(invno, invline); if (invoicesDetail.OutQty + decqty + pickqty - pickdetail.QTY > invoicesDetail.PlanQty) { WebInfoPublish.Publish(this, "超出可领数量", this.languageComponent1); return(false); } } } return(true); }
protected override void SetEditObject(object obj) { PickDetail pickDetail = obj as PickDetail; if (pickDetail == null) { this.txtDQMCodeEdit.Text = string.Empty; txtScarpDQMCodeEdit.Text = string.Empty; this.txtMDescEdit.Text = ""; this.txtQtyEdit.Text = ""; txtPickLineEdit.Text = ""; txtInvLineEidt.Text = ""; return; } ItemFacade itemFacade = new ItemFacade(); this.txtDQMCodeEdit.Text = pickDetail.DQMCode; txtScarpDQMCodeEdit.Text = pickDetail.DQMCode; Domain.MOModel.Material material = (Domain.MOModel.Material)itemFacade.GetMaterial(pickDetail.MCode); if (material != null) { this.txtMDescEdit.Text = material.MchlongDesc; } this.txtQtyEdit.Text = pickDetail.QTY.ToString("0.00"); txtPickLineEdit.Text = pickDetail.PickLine; txtInvLineEidt.Text = pickDetail.InvLine.ToString(); }
public void RemovePickDetail(ApplicationDbContext context, PickDetail pickDetailInDb, int putBackCtns, int putBackPcs, string orderType) { if (orderType == OrderType.Regular) { pickDetailInDb.FCRegularLocationDetail.AvailableCtns += putBackCtns; pickDetailInDb.FCRegularLocationDetail.PickingCtns -= putBackCtns; pickDetailInDb.FCRegularLocationDetail.AvailablePcs += putBackPcs; pickDetailInDb.FCRegularLocationDetail.PickingPcs -= putBackPcs; //刷新被放回地点状态 pickDetailInDb.Status = RefreshRegularStatus(pickDetailInDb.FCRegularLocationDetail); //如果放回的箱数件数刚好等于拣货的箱数件数,那么移除拣货记录 if (putBackCtns == pickDetailInDb.PickCtns && putBackPcs == pickDetailInDb.PickPcs) { context.PickDetails.Remove(pickDetailInDb); } //否则仍然保留拣货记录 else { pickDetailInDb.PickCtns -= putBackCtns; pickDetailInDb.PickPcs -= putBackPcs; } } else if (orderType == OrderType.Permanent) { //如果放回的件数刚好等于拣货的件数,那么移除拣货记录 if (putBackPcs == pickDetailInDb.PickPcs) { context.PickDetails.Remove(pickDetailInDb); } //否则仍然保留拣货记录 else { pickDetailInDb.PickPcs -= putBackPcs; } } }
private PickDetailHistory ConvertPickDetailToPickDetailHistory(PickDetail pickDetail) { return(new PickDetailHistory { Container = pickDetail.Container, vendor = pickDetail.ShipOrder.Vendor, CutPO = pickDetail.PurchaseOrder, ShipPO = pickDetail.ShipOrder.OrderPurchaseOrder, ShipDate = pickDetail.ShipOrder.ShipDate, CustomerCode = pickDetail.CustomerCode, Style = pickDetail.Style, Status = pickDetail.ShipOrder.Status, Color = pickDetail.Color, Size = pickDetail.SizeBundle, Pcs = pickDetail.PcsBundle, PickedCtns = pickDetail.PickCtns, PickedPcs = pickDetail.PickPcs, AllocatedBy = pickDetail.FCRegularLocationDetail == null ? pickDetail.ReplenishmentLocationDetail.Operator : pickDetail.FCRegularLocationDetail.Allocator, CartonRange = pickDetail.CartonRange, Batch = pickDetail.FCRegularLocationDetail == null ? "N/A" : pickDetail.FCRegularLocationDetail.Batch, Location = pickDetail.FCRegularLocationDetail == null ? pickDetail.ReplenishmentLocationDetail.Location : pickDetail.FCRegularLocationDetail.Location }); }
private Error addPickDetails(PickHeaderModel pickHeader, List <SalesOrderDetailModel> sodList) { // Adds detail lines to a pick. var error = new Error(); foreach (var item in sodList) { var pickD = new PickDetail { CompanyId = pickHeader.CompanyId.Value, PickHeaderId = pickHeader.Id, ProductId = item.ProductId, QtyToPick = item.PickQty, QtyPicked = 0, PickDetailStatusId = (int)PickDetailStatus.ToBePicked, SalesOrderDetailId = item.Id, PickLocationId = pickHeader.LocationId, IsReportedToWebsite = false }; db.InsertOrUpdatePickDetail(pickD); pickHeader.PickDetails.Add(mapToModel(pickD)); } return(error); }
protected override object GetEditObject() { if (this.ValidateInput()) { if (facade == null) { facade = new InventoryFacade(base.DataProvider); } ItemFacade itemFacade = new ItemFacade(); DBDateTime dbDateTime = FormatHelper.GetNowDBDateTime(this.DataProvider); string pickno = FormatHelper.CleanString(this.txtPickNoQuery.Text, 40); string pickline = FormatHelper.CleanString(this.txtPickLineEdit.Text, 40); string dqmcode = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtDQMCodeEdit.Text, 40)); string custMCode = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtCustmCodeEdit.Text, 40)); if (txtPickTypeQuery.Text == PickType.PickType_BFC) //BFC:报废 { dqmcode = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtScarpDQMCodeEdit.Text, 40)); } string mdesc = FormatHelper.CleanString(this.txtMDescEdit.Text); int invline = 0; PickDetail pickDetail = (PickDetail)facade.GetPickDetail(pickno, pickline); if (pickDetail == null) { pickDetail = new PickDetail(); int maxpickline = facade.GetMaxPickLine1(pickno); pickDetail.PickNo = pickno; pickDetail.PickLine = (maxpickline + 1).ToString(); #region MCode Domain.MOModel.Material material = (Domain.MOModel.Material)itemFacade.GetMaterialByDQMCode(dqmcode); if (material != null) { pickDetail.MCode = material.MCode; pickDetail.Unit = material.Muom; } else { pickDetail.MCode = " "; pickDetail.Unit = string.Empty; } #endregion //根据鼎桥物料编码在物料表(TBLMATERIAL)带出TBLMATERIAL.MCODE值 pickDetail.MaintainUser = this.GetUserCode(); pickDetail.MaintainDate = dbDateTime.DBDate; pickDetail.MaintainTime = dbDateTime.DBTime; pickDetail.CUser = this.GetUserCode(); pickDetail.CDate = dbDateTime.DBDate; pickDetail.CTime = dbDateTime.DBTime; pickDetail.Status = PickHeadStatus.PickHeadStatus_Release;//Release:初始化 //pickDetail.CustMCode = custMCode; } if (!string.IsNullOrEmpty(txtInvLineEidt.Text)) { invline = Convert.ToInt32(this.txtInvLineEidt.Text); pickDetail.InvLine = invline; } pickDetail.MDesc = mdesc; pickDetail.DQMCode = dqmcode; pickDetail.CustMCode = custMCode; string qty = FormatHelper.CleanString(this.txtQtyEdit.Text, 40); if (!string.IsNullOrEmpty(qty)) { if (IsDecimal(qty)) { pickDetail.QTY = decimal.Parse((decimal.Parse(qty)).ToString("0.00")); } } else { pickDetail.QTY = 0; } return(pickDetail); } else { return(null); } }
protected override void DeleteDomainObjects(ArrayList domainObjects) { if (_WarehouseFacade == null) { _WarehouseFacade = new WarehouseFacade(base.DataProvider); } if (_InventoryFacade == null) { _InventoryFacade = new InventoryFacade(this.DataProvider); } CARTONINVDETAILSN[] cartoninvdetailsnList = ((CARTONINVDETAILSN[])domainObjects.ToArray(typeof(CARTONINVDETAILSN))); try { this.DataProvider.BeginTransaction(); foreach (CARTONINVDETAILSN cartoninvdetailsn in cartoninvdetailsnList) { //1、删除完SN后,同时删除掉对应的TBLCARTONINVDETAILMATERIAL,TBLCARTONINVDETAIL信息。 //2、拣货任务令头状态为pick,且发货箱单头状态为Release时才可以删除。 #region delete _WarehouseFacade.DELETECARTONINVDETAILSN(cartoninvdetailsn); Pick pickHead = _InventoryFacade.GetPick(cartoninvdetailsn.PICKNO) as Pick; PickDetail pickDetail = _InventoryFacade.GetPickDetail(cartoninvdetailsn.PICKNO, cartoninvdetailsn.PICKLINE) as PickDetail; //Pickdetailmaterial pickdetailmaterial = _WarehouseFacade.GetPickdetailmaterial(cartonInvDetailMaterial.PICKNO, cartonInvDetailMaterial.CARTONNO) as Pickdetailmaterial; if (pickDetail == null || pickHead == null) { this.DataProvider.RollbackTransaction(); return; } object[] objPickdetailmaterials = this._WarehouseFacade.QueryPICKDetailMaterialBydqMCode(cartoninvdetailsn.PICKNO, pickDetail.DQMCode); if (objPickdetailmaterials == null) { this.DataProvider.RollbackTransaction(); return; } CARTONINVOICES cartoninvoices = _WarehouseFacade.GetCartoninvoices(cartoninvdetailsn.CARINVNO) as CARTONINVOICES; if (cartoninvoices == null) { this.DataProvider.RollbackTransaction(); return; } //if (!(cartoninvoices.STATUS == PickDetail_STATUS.Status_Release)) //{ // this.DataProvider.RollbackTransaction(); // WebInfoPublish.Publish(this, "发货箱单头状态为Release时才可以删除", this.languageComponent1); // return; //} if (!(pickHead.Status == PickHeadStatus.PickHeadStatus_Pick || pickHead.Status == PickHeadStatus.PickHeadStatus_WaitPick)) { this.DataProvider.RollbackTransaction(); WebInfoPublish.Publish(this, "拣货任务令头状态为pick或者待拣料时才可以删除", this.languageComponent1); return; } object[] cartoninvdetailSnList = _WarehouseFacade.GetCartoninvdetailsnByCartonno(cartoninvdetailsn.CARINVNO, cartoninvdetailsn.CARTONNO); if (cartoninvdetailSnList == null) { CartonInvDetailMaterial cartonInvDetailMaterial = _WarehouseFacade.QueryCartonInvDetailMaterial(cartoninvdetailsn.CARINVNO, cartoninvdetailsn.CARTONNO, pickDetail.DQMCode) as CartonInvDetailMaterial; _WarehouseFacade.DeleteCartonInvDetailMaterial(cartonInvDetailMaterial); _WarehouseFacade.DeleteCartoninvdetailByCartonNo(cartoninvdetailsn.CARINVNO, cartoninvdetailsn.CARTONNO); } else { CartonInvDetailMaterial cartonInvDetailMaterial = _WarehouseFacade.QueryCartonInvDetailMaterial(cartoninvdetailsn.CARINVNO, cartoninvdetailsn.CARTONNO, pickDetail.DQMCode) as CartonInvDetailMaterial; if (cartonInvDetailMaterial != null) { cartonInvDetailMaterial.QTY -= 1; _WarehouseFacade.UpdateCartonInvDetailMaterial(cartonInvDetailMaterial); } } pickDetail.PQTY -= 1; _InventoryFacade.UpdatePickDetail(pickDetail); #region Pickdetailmaterial foreach (Pickdetailmaterial _pickdetailmaterial in objPickdetailmaterials) { decimal num = _pickdetailmaterial.PQty; if (num > 0) { _pickdetailmaterial.PQty -= 1; this._WarehouseFacade.UpdatePickdetailmaterial(_pickdetailmaterial); break; } } #endregion //pickdetailmaterial.PQty-= 1; //_WarehouseFacade.UpdatePickdetailmaterial(pickdetailmaterial); #endregion } this.DataProvider.CommitTransaction(); WebInfoPublish.Publish(this, "删除成功", this.languageComponent1); } catch (Exception ex) { this.DataProvider.RollbackTransaction(); WebInfoPublish.PublishInfo(this, ex.Message, this.languageComponent1); } }
protected override void DeleteDomainObjects(ArrayList domainObjects) { if (_WarehouseFacade == null) { _WarehouseFacade = new WarehouseFacade(base.DataProvider); } if (_InventoryFacade == null) { _InventoryFacade = new InventoryFacade(this.DataProvider); } Pickdetailmaterial[] pickdetailmaterialList = ((Pickdetailmaterial[])domainObjects.ToArray(typeof(Pickdetailmaterial))); try { this.DataProvider.BeginTransaction(); Pick pick = _InventoryFacade.GetPick(txtPickNoQuery.Text) as Pick; if (pick == null) { WebInfoPublish.Publish(this, pick.PickNo + "拣货任务令不存在!", this.languageComponent1); return; } foreach (Pickdetailmaterial pickdetailm in pickdetailmaterialList) { int packageCount = _WarehouseFacade.GetPackageMaterialCartonnos(pick.PickNo); if (packageCount > 0) { WebInfoPublish.Publish(this, pick.PickNo + "包装信息存在, 请先删除包装信息!", this.languageComponent1); return; } } foreach (Pickdetailmaterial pickdetailm in pickdetailmaterialList) { #region delete #region delete 检查 //1、只有行明细是拣料中和拣料完成状态,且拣货任务令头状态是拣料状态或制作箱单状态时才可以删除。 PickDetail pickDetail = _InventoryFacade.GetPickDetail(pickdetailm.Pickno, pickdetailm.Pickline) as PickDetail; Pick pickHead = _InventoryFacade.GetPick(pickdetailm.Pickno) as Pick; if (pickDetail == null || pickHead == null) { this.DataProvider.RollbackTransaction(); return; } if (!(pickDetail.Status == PickDetail_STATUS.Status_Pick || pickDetail.Status == PickDetail_STATUS.Status_WaitPick || pickDetail.Status == PickDetail_STATUS.Status_ClosePick || pickDetail.Status == PickDetail_STATUS.Status_Cancel)) { this.DataProvider.RollbackTransaction(); WebInfoPublish.Publish(this, "行明细是拣料中和拣料完成,取消状态,才可以删除", this.languageComponent1); return; } if (!(pickHead.Status == PickHeadStatus.PickHeadStatus_Pick || pickHead.Status == PickHeadStatus.PickHeadStatus_MakePackingList || pickHead.Status == PickHeadStatus.PickHeadStatus_WaitPick || pickHead.Status == PickHeadStatus.PickHeadStatus_Cancel)) { this.DataProvider.RollbackTransaction(); WebInfoPublish.Publish(this, "拣货任务令头状态是拣料状态或制作箱单,取消状态时,才可以删除", this.languageComponent1); return; } // 2、删除已拣行明细后,该行状态变更为待拣料。 _WarehouseFacade.DeletePickdetailmaterial(pickdetailm); //delete pickdetailmsn _WarehouseFacade.DeletePickDetailMaterialSNByCartonNo(pickdetailm.Pickno, pickdetailm.Cartonno); //3、所有已拣行明细删除后,拣货任务令状态变更为待拣料。 #endregion StorageDetail storageDetail = _WarehouseFacade.GetStorageDetail(pickdetailm.Cartonno) as StorageDetail; if (storageDetail != null) { storageDetail.FreezeQty -= Convert.ToInt32(pickdetailm.Qty); storageDetail.AvailableQty += Convert.ToInt32(pickdetailm.Qty); _WarehouseFacade.UpdateStorageDetail(storageDetail); _WarehouseFacade.UpdateStorageDetailSnbyCartonNo(pickdetailm.Cartonno, "N"); } if (pickDetail.Status != "Cancel") { pickDetail.Status = PickDetail_STATUS.Status_Pick; } pickDetail.SQTY -= pickdetailm.Qty; int count = _WarehouseFacade.GetPickdetailmaterialCount(pickdetailm.Pickno); if (count == 0) { //pickHead.Status = PickHeadStatus.PickHeadStatus_WaitPick; _WarehouseFacade.UpdatePick(pickHead); //pickDetail.Status = PickDetail_STATUS.Status_WaitPick; } _WarehouseFacade.UpdatePickdetail(pickDetail); #endregion } this.DataProvider.CommitTransaction(); WebInfoPublish.Publish(this, "删除成功", this.languageComponent1); } catch (Exception ex) { this.DataProvider.RollbackTransaction(); WebInfoPublish.PublishInfo(this, ex.Message, this.languageComponent1); } }
protected override void DeleteDomainObjects(ArrayList domainObjects) { if (_WarehouseFacade == null) { _WarehouseFacade = new WarehouseFacade(base.DataProvider); } if (_InventoryFacade == null) { _InventoryFacade = new InventoryFacade(this.DataProvider); } Pickdetailmaterialsn[] pickdetailmaterialList = ((Pickdetailmaterialsn[])domainObjects.ToArray(typeof(Pickdetailmaterialsn))); try { this.DataProvider.BeginTransaction(); foreach (Pickdetailmaterialsn pickdetailm in pickdetailmaterialList) { #region delete //请先删除箱单信息 string sn = pickdetailm.Sn; object[] list = _WarehouseFacade.GetCartoninvdetailsnBySn(sn); if (list != null) { this.DataProvider.RollbackTransaction(); WebInfoPublish.Publish(this, "请先删除箱单信息", this.languageComponent1); return; } #region delete 检查 //1、只有行明细是拣料中和拣料完成状态,且拣货任务令头状态是拣料状态或制作箱单状态时才可以删除。 PickDetail pickDetail = _InventoryFacade.GetPickDetail(pickdetailm.Pickno, pickdetailm.Pickline) as PickDetail; Pick pickHead = _InventoryFacade.GetPick(pickdetailm.Pickno) as Pick; if (pickDetail == null || pickHead == null) { this.DataProvider.RollbackTransaction(); return; } if (!(pickDetail.Status == PickDetail_STATUS.Status_Pick || pickDetail.Status == PickDetail_STATUS.Status_WaitPick || pickDetail.Status == PickDetail_STATUS.Status_ClosePick || pickDetail.Status == PickDetail_STATUS.Status_Cancel)) { this.DataProvider.RollbackTransaction(); WebInfoPublish.Publish(this, "行明细是拣料中和拣料完成,取消状态,才可以删除", this.languageComponent1); return; } if (!(pickHead.Status == PickHeadStatus.PickHeadStatus_Pick || pickDetail.Status == PickDetail_STATUS.Status_WaitPick || pickHead.Status == PickHeadStatus.PickHeadStatus_MakePackingList || pickHead.Status == PickHeadStatus.PickHeadStatus_Cancel)) { this.DataProvider.RollbackTransaction(); WebInfoPublish.Publish(this, "拣货任务令头状态是拣料状态或制作箱单,取消状态时,才可以删除", this.languageComponent1); return; } //delete pickdetailmsn _WarehouseFacade.DeletePickdetailmaterialsn(pickdetailm); // tblPickdetailmaterial object[] snlist = _WarehouseFacade.QueryPickdetailmaterialsnByCartonno(pickdetailm.Pickno, pickdetailm.Cartonno); Pickdetailmaterial pickdetailmaterial = _WarehouseFacade.GetPickdetailmaterial(pickdetailm.Pickno, pickdetailm.Cartonno) as Pickdetailmaterial; if (pickdetailmaterial != null) { pickdetailmaterial.Qty -= 1; _WarehouseFacade.UpdatePickdetailmaterial(pickdetailmaterial); if (snlist == null) { _WarehouseFacade.DeletePickdetailmaterial(pickdetailmaterial); } } //3、所有已拣行明细删除后,拣货任务令状态变更为待拣料。 #endregion StorageDetail storageDetail = _WarehouseFacade.GetStorageDetail(pickdetailm.Cartonno) as StorageDetail; if (storageDetail != null) { storageDetail.FreezeQty -= 1; storageDetail.AvailableQty += 1; _WarehouseFacade.UpdateStorageDetail(storageDetail); } StorageDetailSN storageDetailsn = _InventoryFacade.GetStorageDetailSN(pickdetailm.Sn) as StorageDetailSN; if (storageDetailsn != null) { storageDetailsn.PickBlock = "N"; _InventoryFacade.UpdateStorageDetailSN(storageDetailsn); } int count = _WarehouseFacade.GetPickdetailmaterialCount(pickdetailm.Pickno); pickDetail.SQTY -= 1; if (pickDetail.Status != "Cancel") { pickDetail.Status = PickDetail_STATUS.Status_Pick; } if (count == 0) { //pickHead.Status = PickHeadStatus.PickHeadStatus_WaitPick; _WarehouseFacade.UpdatePick(pickHead); //pickDetail.Status = PickDetail_STATUS.Status_WaitPick; } _WarehouseFacade.UpdatePickdetail(pickDetail); #endregion } this.DataProvider.CommitTransaction(); WebInfoPublish.Publish(this, "删除成功", this.languageComponent1); } catch (Exception ex) { this.DataProvider.RollbackTransaction(); WebInfoPublish.PublishInfo(this, ex.Message, this.languageComponent1); } }
protected void CmdConfirmOweQtyObjects(object[] pickList) { // 点击该按钮,初始TBLPICKDETAIL. OweQTY为空or零, //点击该按钮后保存TBLPICKDETAIL. OweQTY= TBLPICKDETAIL. SQTY //注:只有状态为:Owe:欠料的物料行可以执行此按钮,确认后该行更新状态为ClosePick:拣料完成 if (facade == null) { facade = new InventoryFacade(base.DataProvider); } if (_WarehouseFacade == null) { _WarehouseFacade = new WarehouseFacade(base.DataProvider); } DBDateTime dbTime = FormatHelper.GetNowDBDateTime(this.DataProvider); try { this.DataProvider.BeginTransaction(); foreach (PickDetail pickdetail in pickList) { if (pickdetail.Status == PickDetail_STATUS.Status_Owe) { if (pickdetail.OweQTY == 0 || string.IsNullOrEmpty(pickdetail.OweQTY.ToString())) { PickDetail oldpickdetail = (PickDetail)facade.GetPickDetail(pickdetail.PickNo, pickdetail.PickLine); oldpickdetail.OweQTY = oldpickdetail.SQTY; oldpickdetail.Status = PickDetail_STATUS.Status_ClosePick; facade.UpdatePickDetail(oldpickdetail); } else { WebInfoPublish.Publish(this, "已申请欠料发货!", this.languageComponent1); return; } } else { WebInfoPublish.Publish(this, "只有状态为欠料的物料行可以执行此按钮", this.languageComponent1); return; } } #region 在invinouttrans表中增加一条数据 箱单完成日期 WarehouseFacade wfacade = new WarehouseFacade(base.DataProvider); DBDateTime dbTime1 = FormatHelper.GetNowDBDateTime(this.DataProvider); foreach (PickDetail pickDetail in pickList) { Pick pick = facade.GetPick(pickDetail.PickNo) as Pick; InvInOutTrans trans = wfacade.CreateNewInvInOutTrans(); trans.CartonNO = string.Empty; trans.DqMCode = pickDetail.DQMCode; trans.FacCode = string.Empty; trans.FromFacCode = string.Empty; trans.FromStorageCode = string.Empty; trans.InvNO = pick.InvNo;//.InvNo; trans.InvType = pick.PickType; trans.LotNo = string.Empty; trans.MaintainDate = dbTime1.DBDate; trans.MaintainTime = dbTime1.DBTime; trans.MaintainUser = this.GetUserCode(); trans.MCode = pickDetail.MCode; trans.ProductionDate = 0; trans.Qty = pickDetail.QTY; trans.Serial = 0; trans.StorageAgeDate = 0; trans.StorageCode = string.Empty; trans.SupplierLotNo = string.Empty; trans.TransNO = pickDetail.PickNo; trans.TransType = "OUT"; trans.Unit = string.Empty; trans.ProcessType = "ClosePick"; wfacade.AddInvInOutTrans(trans); } #endregion string pickno = FormatHelper.CleanString(this.txtPickNoQuery.Text); bool isUpdatePick = facade.QueryPickDetailCount(pickno, PickDetail_STATUS.Status_ClosePick) == 0; if (isUpdatePick) { facade.UpdatePickStatusByPickno(pickno, PickHeadStatus.PickHeadStatus_MakePackingList); } #region 创建发货箱单 string carInvNo = string.Empty; object obj = _WarehouseFacade.GetCartonInvoices(pickno); if (obj == null) { CARTONINVOICES CartonH = _WarehouseFacade.CreateNewCartoninvoices(); object objLot = _WarehouseFacade.GetNewLotNO("K", dbTime.DBDate.ToString().Substring(2, 6).ToString()); Serialbook serbook = _WarehouseFacade.CreateNewSerialbook(); if (objLot == null) { #region CartonH.CARINVNO = "K" + dbTime.DBDate.ToString().Substring(2, 6).ToString() + "001"; CartonH.PICKNO = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtPickNoQuery.Text)); CartonH.STATUS = CartonInvoices_STATUS.Status_Release; CartonH.CDATE = dbTime.DBDate; CartonH.CTIME = dbTime.DBTime; CartonH.CUSER = this.GetUserCode(); CartonH.MDATE = dbTime.DBDate; CartonH.MTIME = dbTime.DBTime; CartonH.MUSER = this.GetUserCode(); _WarehouseFacade.AddCartoninvoices(CartonH); serbook.SNprefix = "K" + dbTime.DBDate.ToString().Substring(2, 6).ToString(); serbook.MAXSerial = "2"; serbook.MUser = this.GetUserCode(); serbook.MDate = dbTime.DBDate; serbook.MTime = dbTime.DBTime; _WarehouseFacade.AddSerialbook(serbook); #endregion } else { #region string MAXNO = (objLot as Serialbook).MAXSerial; string SNNO = (objLot as Serialbook).SNprefix; CartonH.CARINVNO = SNNO + Convert.ToString(MAXNO).PadLeft(3, '0'); CartonH.PICKNO = FormatHelper.PKCapitalFormat(FormatHelper.CleanString(this.txtPickNoQuery.Text)); CartonH.STATUS = CartonInvoices_STATUS.Status_Release; CartonH.CDATE = dbTime.DBDate; CartonH.CTIME = dbTime.DBTime; CartonH.CUSER = this.GetUserCode(); CartonH.MDATE = dbTime.DBDate; CartonH.MTIME = dbTime.DBTime; CartonH.MUSER = this.GetUserCode(); _WarehouseFacade.AddCartoninvoices(CartonH); //更新tblserialbook serbook.SNprefix = SNNO; serbook.MAXSerial = Convert.ToString((int.Parse(MAXNO) + 1)); serbook.MUser = this.GetUserCode(); serbook.MDate = dbTime.DBDate; serbook.MTime = dbTime.DBTime; _WarehouseFacade.UpdateSerialbook(serbook); #endregion } } # endregion this.DataProvider.CommitTransaction(); WebInfoPublish.Publish(this, "确认欠料发货数量成功", this.languageComponent1); }
protected override void DeleteDomainObjects(ArrayList domainObjects) { if (_WarehouseFacade == null) { _WarehouseFacade = new WarehouseFacade(base.DataProvider); } if (_InventoryFacade == null) { _InventoryFacade = new InventoryFacade(this.DataProvider); } Pickdetailmaterial[] pickdetailmaterialList = ((Pickdetailmaterial[])domainObjects.ToArray(typeof(Pickdetailmaterial))); try { this.DataProvider.BeginTransaction(); foreach (Pickdetailmaterial pickdetailm in pickdetailmaterialList) { #region delete //1、只有行明细是拣料中和拣料完成状态,且拣货任务令头状态是拣料状态或制作箱单状态时才可以删除。 PickDetail pickDetail = _InventoryFacade.GetPickDetail(pickdetailm.Pickno, pickdetailm.Pickline) as PickDetail; Pick pickHead = _InventoryFacade.GetPick(pickdetailm.Pickno) as Pick; if (pickDetail == null || pickHead == null) { this.DataProvider.RollbackTransaction(); return; } if (!(pickDetail.Status == PickDetail_STATUS.Status_Pick || pickDetail.Status == PickDetail_STATUS.Status_ClosePick)) { this.DataProvider.RollbackTransaction(); WebInfoPublish.Publish(this, "行明细是拣料中和拣料完成状态,才可以删除", this.languageComponent1); return; } if (!(pickHead.Status == PickHeadStatus.PickHeadStatus_Pick || pickHead.Status == PickHeadStatus.PickHeadStatus_MakePackingList)) { this.DataProvider.RollbackTransaction(); WebInfoPublish.Publish(this, "拣货任务令头状态是拣料状态或制作箱单状态时,才可以删除", this.languageComponent1); return; } // 2、删除已拣行明细后,该行状态变更为待拣料。 _WarehouseFacade.DeletePickdetailmaterial(pickdetailm); pickDetail.Status = PickDetail_STATUS.Status_Pick; //3、所有已拣行明细删除后,拣货任务令状态变更为待拣料。 int count = _WarehouseFacade.GetPickdetailmaterialCount(pickdetailm.Pickno); if (count == 0) { pickHead.Status = PickHeadStatus.PickHeadStatus_WaitPick; _WarehouseFacade.UpdatePick(pickHead); pickDetail.Status = PickDetail_STATUS.Status_WaitPick; } _WarehouseFacade.UpdatePickdetail(pickDetail); #endregion } this.DataProvider.CommitTransaction(); WebInfoPublish.Publish(this, "删除成功", this.languageComponent1); } catch (Exception ex) { this.DataProvider.RollbackTransaction(); WebInfoPublish.PublishInfo(this, ex.Message, this.languageComponent1); } }
private PickDetailModel mapToModel(PickDetail pickD) { return(Mapper.Map <PickDetail, PickDetailModel>(pickD)); }