Example #1
0
        /// <summary>
        /// 判断有没产生销售订单特价申请单
        /// </summary>
        /// <param name="bpObj"></param>
        /// <returns></returns>
        public bool IsSoOrderSale(DeleteSo bpObj)
        {
            bool            b    = false;
            SoOrderSaleHead head = SoOrderSaleHead.Finder.Find("SourceOrderID=@SourceOrderID", new OqlParam(bpObj.SoID));

            if (head != null && head.DocumentSate.Value == UFIDA.U9.Cust.GS.FT.AllEnumBE.DocumnetSate.OpenState.Value)
            {
                b = true;
            }
            return(b);
        }
Example #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();
            }
        }