protected List <ReturnCancelDTO> GetCancal(GetOrderCancel bpObj) { List <ReturnCancelDTO> CancelList = new List <ReturnCancelDTO>(); //标准订单行料品+销售单位查找 and 销售订单行.数量-已核销数量>0 // 单据类型=自备库存订单 自备库存订单.状态=已审核 SO.EntityList SoList = SO.Finder.FindAll("DocumentType=@DocumentType and Status=3", new OqlParam(1)); if (SoList.Count > 0) { for (int i = 0; i < SoList.Count; i++) { SOLine.EntityList SolineList = SOLine.Finder.FindAll("SO=@SO and ItemInfo=@ItemInfo and PU=@PU and (OrderByQtyPU-DescFlexField.PrivateDescSeg20)>0", new OqlParam(SoList[i].ID), new OqlParam(bpObj.ItemMaster.ID), new OqlParam(bpObj.Uom.ID));// if (SolineList.Count > 0) { ReturnCancelDTO cancel = new ReturnCancelDTO(); cancel.RowNo = SolineList[i].DocLineNo; //行号 cancel.SoID = SoList[i].Key; //销售订单单号 cancel.ItemMasterID = SolineList[i].ItemInfo.ItemIDKey; //料号 cancel.ItemCode = SolineList[i].ItemInfo.ItemCode; cancel.ItemName = SolineList[i].ItemInfo.ItemName; cancel.Qty = SolineList[i].OrderByQtyPU;//数量 if (string.IsNullOrEmpty(SolineList[i].DescFlexField.PrivateDescSeg20)) { cancel.NotCancelQty = cancel.Qty - Convert.ToDecimal(SolineList[i].DescFlexField.PrivateDescSeg20);//可核销数量 } CancelList.Add(cancel); } } } return(CancelList); }
/// <summary> /// 修改销售订单行上的佣金标识 /// </summary> /// <param name="LineList"></param> public void ModifyBrokerage(SOLine.EntityList LineList) { using (ISession session = Session.Open()) { //佣金方式,单价,支付金额,支付币种,计算原则,佣金比例,销售订单行ID,佣金表ID for (int i = 0; i < LineList.Count; i++) { //修改销售订单行。,是否生成佣金 LineList[i].DescFlexField.PrivateDescSeg6 = "true"; } session.Commit(); } }
/// <summary> /// 联动删除 BOM 佣金 费用 /// </summary> /// <param name="bpObj"></param> public void Delete(DeleteSo bpObj) { using (ISession session = Session.Open()) { //随单Bom OrderBomHead.EntityList BomList = OrderBomHead.Finder.FindAll("OrderHead=@OrderHead", new OqlParam(bpObj.SoID)); if (BomList != null && BomList.Count > 0) { foreach (OrderBomHead item in BomList) { item.Remove(); } } //订单行佣金 SOLine.EntityList LineList = bpObj.SoID.GetEntity().SOLines; if (LineList != null && LineList.Count > 0) { foreach (SOLine item in LineList) { OrderLineBrokerage.EntityList Brokerage = OrderLineBrokerage.Finder.FindAll("OrderLineID=@OrderLineID", new OqlParam(item.ID)); if (Brokerage != null && Brokerage.Count > 0) { foreach (OrderLineBrokerage items in Brokerage) { items.Remove(); } } } } //订单费用 SellOrderID OrderCost.EntityList CostList = OrderCost.Finder.FindAll("SellOrderID=@SellOrderID", new OqlParam(bpObj.SoID)); if (CostList != null && CostList.Count > 0) { foreach (OrderCost item in CostList) { item.Remove(); } } session.Commit(); } }
public override object Do(object obj) { ModifyDiscount_Brokerage bpObj = (ModifyDiscount_Brokerage)obj; if (bpObj != null) { SO SoEntity = bpObj.SoID.GetEntity(); if (bpObj.Type == 1) { //修改销售订单头的 折扣标识 if (SoEntity != null) { ModifyDiscount(SoEntity); } } else if (bpObj.Type == 2) { //先判断销售订单头的是否生成折扣的标识是否为true if (!string.IsNullOrEmpty(SoEntity.DescFlexField.PrivateDescSeg1) && Convert.ToBoolean(SoEntity.DescFlexField.PrivateDescSeg1)) { //修改销售订单行的佣金标识 SOLine.EntityList LineList = SOLine.Finder.FindAll("SO=@SO", new OqlParam(bpObj.SoID.ID)); if (LineList != null && LineList.Count > 0) { ModifyBrokerage(LineList); } } else { throw new Exception("当前销售订单未生成折扣,不可生成佣金!"); } } } return(true); }