public override object Do(object obj)
        {
            ModifySoLinePrice bpObj = (ModifySoLinePrice)obj;
            if (bpObj == null) throw new Exception("修改销售订单行销售价格和最终价失败!");
             //审核: 销售订单行.外销价(弹性域字段)=申请价格、最终价=外销价*折扣
             //弃审:销售订单行.外销价=销售订单特价申请单行.定价、最终价=外销价*折扣
            List<SOLine.EntityKey> SoLineListKey = bpObj.SoLineKey;//销售订单行 key集合
            using (ISession session = Session.Open())
            {
                foreach (SOLine.EntityKey item in SoLineListKey)
                {
                    SOLine SolineEntity = item.GetEntity();//获取销售订单行实体
                    SoOrderSaleLine SoOrderSaleLineEntity=SoOrderSaleLine.Finder.Find(string.Format("SourceLineID",item));//获取特价申请单行实体
                    if (SolineEntity != null)
                    {

                        SolineEntity.DescFlexField.PrivateDescSeg10 = SoOrderSaleLineEntity.AfterPrices+"";
                        if(string.IsNullOrEmpty(SolineEntity.DescFlexField.PrivateDescSeg10))
                      //  SolineEntity.FinallyPriceTC =SoOrderSaleLineEntity

                    }

                }

                session.Commit();
            }

            return true;
        }
Beispiel #2
0
        /// <summary>
        /// 创建特价申请单
        /// </summary>
        /// <param name="SoLineList"></param>
        public void CreateySoOrderSale(List <SM.SO.SOLine.EntityKey> SoLineList)
        {
            List <SM.SO.SOLine.EntityKey> SoLineListKey = SoLineList; //销售订单行 key集合

            SM.SO.SO SoEntity = SoLineListKey[0].GetEntity().SO;      //得到销售订单头实体

            using (ISession session = Session.Open())
            {
                UFIDA.U9.Cust.GS.FT.AllFormTypeBE.AllFormType docType = UFIDA.U9.Cust.GS.FT.AllFormTypeBE.AllFormType.Finder.Find("DocumentsType=1");
                if (docType == null)
                {
                    throw new Exception("没有预设销售订单特价申请单单据类型,或者单据类型的上游单据推出未勾选!");
                }
                #region 特价申请单头
                SoOrderSaleHead SoOrderSale = SoOrderSaleHead.Create();                                                                                                        //创建实体
                SoOrderSale.DocumentType  = docType;                                                                                                                           //单据类型
                SoOrderSale.BusinessDate  = DateTime.Now;
                SoOrderSale.SourceType    = UFIDA.U9.Cust.GS.FT.AllEnumBE.SourceTypeEnum.SoOrder;                                                                              //来源类型
                SoOrderSale.CurrencyKey   = SoEntity.TCKey;                                                                                                                    //币种
                SoOrderSale.SalesManKey   = SoEntity.SellerKey;                                                                                                                //业务员
                SoOrderSale.GetOrderOrg   = UFIDA.U9.Base.Organization.Organization.Finder.Find("Code=@Code", new OqlParam("Code", SoEntity.DescFlexField.PrivateDescSeg14));; //接单组织,销售订单扩展字段
                SoOrderSale.ClientKey     = SoEntity.OrderBy.CustomerKey;                                                                                                      //客户
                SoOrderSale.DepartmentKey = SoEntity.SaleDepartmentKey;                                                                                                        //部门
                SoOrderSale.SourceOrderID = SoEntity;
                //SoOrderSale.Org   组织,默认当前组织
                #endregion
                #region 特价申请单行
                int lineNum = 10;
                foreach (SOLine.EntityKey SoLineKey in SoLineListKey)
                {
                    SOLine SoLineEntity = SoLineKey.GetEntity();
                    if (SoLineEntity != null)
                    {
                        SoOrderSaleLine SoOrderSaleLine = SoOrderSaleLine.Create(SoOrderSale);//创建特价申请单行
                        SoOrderSaleLine.RowNo = lineNum;
                        lineNum = lineNum + 10;
                        //行号处理,
                        SoOrderSaleLine.SoruceRowNo = SoLineEntity.DocLineNo;                  //来源行号

                        SoOrderSaleLine.SourceLineID   = SoLineEntity.ID;                      //来源行ID
                        SoOrderSaleLine.SourceOrderID  = SoLineEntity.SO.ID;                   //来源单据ID
                        SoOrderSaleLine.SourceOrderKey = SoLineEntity.SO.Key;                  //来源单号
                        SoOrderSaleLine.CustomerItem   = SoLineEntity.CustomerItemName;        //.ItemInfo.ItemIDKey;   //(料品)客户料号=>销售订单行上面有客户料号,客户品名
                        SoOrderSaleLine.ItemCodeKey    = SoLineEntity.ItemInfo.ItemIDKey;      //料号
                        SoOrderSaleLine.ItemName       = SoLineEntity.ItemInfo.ItemName;       //品名
                        SoOrderSaleLine.Qty            = SoLineEntity.OrderByQtyTU;            //数量
                        SoOrderSaleLine.ListAmount     = SoLineEntity.OrderPriceTC;            //定价
                        SoOrderSaleLine.Amount         = SoOrderSaleLine.Qty * SoOrderSaleLine.ListAmount;
                        if (!string.IsNullOrEmpty(SoLineEntity.DescFlexField.PrivateDescSeg5)) //申请后单价 原销售订单外销价,可改
                        {
                            SoOrderSaleLine.AfterPrices = decimal.Parse(SoLineEntity.DescFlexField.PrivateDescSeg5);
                            SoOrderSaleLine.AfterAmount = SoOrderSaleLine.AfterPrices * SoOrderSaleLine.Qty; //申请后金额=单价*数量
                        }
                        SoOrderSaleLine.MeasureUomKey = SoLineEntity.TUKey;                                  //计量单位
                        if (!string.IsNullOrEmpty(SoLineEntity.DescFlexField.PubDescSeg11))
                        {
                            SoOrderSaleLine.BinningMode = UFIDA.U9.Cust.GS.FT.AllEnumBE.BinningModeEnum.GetFromValue(SoLineEntity.DescFlexField.PubDescSeg11);//装箱方式 扩展字段
                        }
                        // SoOrderSaleLine.Memo;//备注
                        SoOrderSaleLine.PriceWhy = SoLineEntity.DescFlexField.PrivateDescSeg2;//调价原因
                    }
                }
                #endregion

                session.Commit();
            }
        }