public WIPWHTotal(Session session, PurchOrderReceive poReceive) : base(session) { _Warehouse = poReceive.PurchOrderLine.Warehouse; OnChanged("Warehouse"); _PhysicalQty = 0; OnChanged("PhysicalQty"); _AvailQty = 0; OnChanged("AvailQty"); _Item = poReceive.PurchOrderLine.Item; OnChanged("Item"); }
private void btnDeductFromWarehouse_Click(object sender, EventArgs e) { UnitOfWork uow = new UnitOfWork(); uow.BeginTransaction(); foreach (int row in gridView1.GetSelectedRows()) { PurchOrderLine poLine = (PurchOrderLine)gridView1.GetRow(row); if (poLine.OrderStatus != PurchOrderLine.PurchOrderStatus.Complete) { XtraMessageBox.Show(string.Format("退货单 {0} 不能扣数 !!", poLine.PurchOrderNo)); } else { DialogResult dialResult = XtraMessageBox.Show(string.Format("请问是否扣以下退货数{0}\n注意 : 你需要在采购入仓确认内过帐. ", poLine.PurchOrderNo), "确认扣数", MessageBoxButtons.YesNo); if (dialResult == DialogResult.Yes) { PurchOrderReceive pOrderReceive = new PurchOrderReceive(uow); PurchOrderLine poLine2 = uow.FindObject<PurchOrderLine>(CriteriaOperator.Parse(string.Format("Oid = '{0}'", poLine.Oid))); pOrderReceive.PurchOrderLine = poLine2; pOrderReceive.Qty = poLine2.NeedQty * -1; pOrderReceive.Remark = ""; pOrderReceive.Warehouse = poLine2.Warehouse; pOrderReceive.VendorDN = ""; pOrderReceive.FreeSpareQty = 0; pOrderReceive.Save(); pOrderReceive.Post(); } } } uow.CommitTransaction(); initGrid(); }
public void Post(Session session ) { //(Qty + FreeSpareQty ) > (PurchOrderLine.BalQty + PurchOrderLine.FreeSpareBalQty - PurchOrderLine.PendingReceivedQty) if ((this.ReceivedNow ) > (PurchOrderLine.BalQty)) { DevExpress.XtraEditors.XtraMessageBox.Show(string.Format("采购单号{0}不能发单, 因为入仓数大于采购单欠数", PurchOrderLine.PurchOrderNo)); this._ResultStatus = ResultStatus.Error; } else if (this.ReceivedVendorDN == "") { DevExpress.XtraEditors.XtraMessageBox.Show(string.Format("采购单号{0}不能发单, 因为没有输入来货单号", PurchOrderLine.PurchOrderNo)); this._ResultStatus = ResultStatus.Error; } else { try { PurchOrderReceive pOrderReceive = new PurchOrderReceive(session); pOrderReceive.PurchOrderLine = this.PurchOrderLine; pOrderReceive.Qty = this.ReceivedNow; pOrderReceive.Remark = this.ReceivedRemark; pOrderReceive.Warehouse = this.ReceivedWarehouse; pOrderReceive.VendorDN = this.ReceivedVendorDN; pOrderReceive.FreeSpareQty = this.ReceivedFreeNow; pOrderReceive.Save(); this._ResultStatus = ResultStatus.OK; } catch { this._ResultStatus = ResultStatus.Error; } } }
public static PurchOrderReceive CreateReturnOrder(PurchOrderReceive pReceive) { PurchOrderReceive rOrder = new PurchOrderReceive(pReceive.Session); rOrder.PurchOrderLine = pReceive.PurchOrderLine; rOrder.Qty = pReceive.Qty * -1; rOrder.FreeSpareQty = pReceive.FreeSpareQty * -1; rOrder.Remark = pReceive.Remark; rOrder.Warehouse = pReceive.Warehouse; rOrder.VendorDN = pReceive.VendorDN; rOrder.SetStatusComplete(); rOrder.SetStatusReturn(); rOrder.Save(); rOrder.PurchOrderLine.UpdatePurchReceive(); rOrder.PurchOrderLine.Save(); return rOrder; }
private void btnSplit_Execute(object sender, SimpleActionExecuteEventArgs e) { if (View.CurrentObject == null) return; UnitOfWork uow = (UnitOfWork)((XPObjectSpace)View.ObjectSpace).Session; uow.BeginTransaction(); PurchOrderReceive poReceive = (PurchOrderReceive)View.CurrentObject; float SplitQty = 0; try { SplitQty = float.Parse(Microsoft.VisualBasic.Interaction.InputBox( string.Format("你已选取了单号 : {0}, 产品编码 : {1}, 数量 : {2}\n请输入要分单数量 !! ", poReceive.PurchOrderLine.PurchOrderNo, poReceive.Item.ItemNo, poReceive.Qty), "分单", "", 0, 0)); if (SplitQty >= poReceive.Qty) { XtraMessageBox.Show(string.Format("不能分单, 分单数量 {0} 大于原有数量 {1}", SplitQty, poReceive.Qty) , "错误"); uow.RollbackTransaction(); return; } poReceive.Qty = poReceive.Qty - SplitQty; poReceive.Save(); poReceive.PurchOrderLine.UpdatePurchReceive(); PurchOrderReceive newPoReceive = new PurchOrderReceive(uow); newPoReceive.OurRefNo = poReceive.OurRefNo; newPoReceive.PurchOrderLine = poReceive.PurchOrderLine; newPoReceive.Qty = SplitQty; newPoReceive.Remark = poReceive.Remark; newPoReceive.VendorDN = poReceive.VendorDN; newPoReceive.Warehouse = poReceive.Warehouse; newPoReceive.Save(); uow.CommitTransaction(); View.ObjectSpace.Refresh(); } catch(Exception ex) { XtraMessageBox.Show(string.Format("不能分单, 错误信息如下: \n{0}", ex.Message) , "错误"); uow.RollbackTransaction(); } }