private void SaveCheckBill(IBillView billView, OperateOption saveOption)
        {
            // 设置FormId
            Form form = billView.BillBusinessInfo.GetForm();

            if (form.FormIdDynamicProperty != null)
            {
                form.FormIdDynamicProperty.SetValue(billView.Model.DataObject, form.Id);
            }

            // 调用保存操作
            IOperationResult saveResult = BusinessDataServiceHelper.Save(this.Context, billView.BillBusinessInfo, billView.Model.DataObject, saveOption, "Save");

            if (saveResult.IsSuccess)
            {
                object[] primaryKeys = saveResult.SuccessDataEnity.Select(u => u.GetPrimaryKeyValue()).ToArray();

                // 提交
                OperateOption    submitOption = OperateOption.Create();
                IOperationResult submitResult = BusinessDataServiceHelper.Submit(this.Context, billView.BillBusinessInfo, primaryKeys, "Submit", submitOption);
                if (submitResult.IsSuccess)
                {
                    // 审核
                    OperateOption    auditOption = OperateOption.Create();
                    IOperationResult auditResult = BusinessDataServiceHelper.Audit(this.Context, billView.BillBusinessInfo, primaryKeys, auditOption);
                }
            }
        }
Beispiel #2
0
        //数据同步
        public void dataSync(DynamicObject obj)
        {
            IBillView billView = this.CreateBillView(this.Context);

            ((IBillViewService)billView).LoadData();
            DynamicFormViewPlugInProxy eventProxy = billView.GetService <DynamicFormViewPlugInProxy>();

            eventProxy.FireOnLoad();
            this.FillBillPropertys(this.Context, billView, obj);
            IOperationResult saveResult = null;

            object[]         primaryKeys = null;
            IOperationResult auditResult = null;

            if (this.FormOperation.Operation.Equals("Save"))//保存
            {
                if (isExsit(Convert.ToInt64(obj["Id"])))
                {
                    updateAssistData(Convert.ToInt64(obj["Id"]), Convert.ToString(obj["Number"]), Convert.ToString(obj["Name"]));  //存在则修改
                }
                else  //不存则新增
                      // 调用保存操作
                {
                    OperateOption saveOption = OperateOption.Create();
                    // 调用保存操作
                    saveResult = BusinessDataServiceHelper.Save(this.Context, billView.BillBusinessInfo, billView.Model.DataObject, saveOption, "Save");
                }
            }
            else if (this.FormOperation.Operation.Equals("Submit"))//提交
            {
                updateAssistDataStatus(Convert.ToInt64(obj["Id"]), "B");
            }
            else if (this.FormOperation.Operation.Equals("Audit"))//审核
            {
                updateAssistDataStatus(Convert.ToInt64(obj["Id"]), "C");
            }
            else if (this.FormOperation.Operation.Equals("UnAudit"))          //反审核
            {
                if (getExsitOldData(Convert.ToString(obj["Number"])) != null) //判断辅助资料表是否有对应的老数据
                {
                    DynamicObject oo = getExsitOldData(Convert.ToString(obj["Number"]));
                    updateAssistDataOld(Convert.ToString(oo["fentryid"]), Convert.ToString(obj["Number"]));//如果存在则把外键编码字段关联上
                }
                updateAssistDataStatus(Convert.ToInt64(obj["Id"]), "D");
            }
            else if (this.FormOperation.Operation.Equals("Forbid"))//禁用
            {
                updateAssistForbidStatus(Convert.ToInt64(obj["Id"]), "B");
            }
            else if (this.FormOperation.Operation.Equals("Enable"))//反禁用
            {
                updateAssistForbidStatus(Convert.ToInt64(obj["Id"]), "A");
            }
            else if (this.FormOperation.Operation.Equals("Delete"))//删除
            {
                deleteData(Convert.ToInt64(obj["Id"]));
            }
        }
        /// <summary>
        /// 另一种保存服务
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="FormID"></param>
        /// <param name="dyObject"></param>
        /// <returns></returns>
        public IOperationResult BatchSaveBill(Context ctx, string FormID, DynamicObject[] dyObject)
        {
            IMetaDataService metaService = ServiceHelper.GetService <IMetaDataService>(); //元数据服务
            FormMetadata     Meta        = metaService.Load(ctx, FormID) as FormMetadata; //获取元数据
            OperateOption    SaveOption  = OperateOption.Create();
            IOperationResult SaveResult  = BusinessDataServiceHelper.Save(ctx, Meta.BusinessInfo, dyObject, SaveOption, "Save");

            return(SaveResult);
        }
Beispiel #4
0
        }//end method

        public static IOperationResult Save(this IEnumerable <DynamicObject> dataObject, Context ctx, BusinessInfo businessInfo, OperateOption option = null)
        {
            if (option == null)
            {
                option = OperateOption.Create();
            }
            option.SetIgnoreWarning(true);
            option.SetIgnoreInteractionFlag(true);

            IOperationResult result = BusinessDataServiceHelper.Save(ctx, businessInfo, dataObject.ToArray(), option);

            return(result);
        }//end method
        /// <summary>
        /// 提示是否分配
        /// </summary>
        /// <param name="_FCrmHolder"></param>
        /// <param name="_FCrmHdOrgID"></param>
        /// <param name="_FCrmHdDept"></param>
        private void ConfirmMsg()
        {
            string FDocumentStatus = CZ_GetValue("FDocumentStatus");

            if (FDocumentStatus == "Z")
            {
                this.View.BillModel.SetValue("FClueStatus", "2");
                return;
            }
            string _FCrmHolder  = CZ_GetValue("FCrmHolder", "Id");
            string _FCrmHdOrgID = CZ_GetValue("FCrmHdOrgID", "Id");
            string _FCrmHdDept  = CZ_GetValue("FCrmHdDept", "Id");

            if (_FCrmHolder != "" && _FCrmHdOrgID != "" && _FCrmHdDept != "")
            {
                string FCrmHolderName = CZ_GetValue("FCrmHolder", "Name");
                this.View.ShowMessage("是否确定将本条线索分配给" + FCrmHolderName + "?", MessageBoxOptions.YesNo,
                                      new Action <MessageBoxResult>((result) =>
                {
                    if (result == MessageBoxResult.Yes)
                    {
                        this.View.BillModel.SetValue("FClueStatus", "2");
                        //锁定持有信息
                        this.View.StyleManager.SetEnabled("FCrmHdOrgID", "", false);
                        this.View.StyleManager.SetEnabled("FCrmHdDept", "", false);
                        this.View.StyleManager.SetEnabled("FCrmHolder", "", false);

                        //保存单据
                        IOperationResult saveResult = BusinessDataServiceHelper.Save(
                            this.Context,
                            this.View.BillView.BillBusinessInfo,
                            this.View.BillModel.DataObject
                            );
                        this.View.Refresh();
                        this.View.ShowMessage("分配完成!", MessageBoxOptions.OK, new Action <MessageBoxResult>((rslt) =>
                        {
                            this.View.Close();
                        }));
                    }
                    else
                    {
                        this.View.BillModel.SetValue("FClueStatus", "1");
                        //解锁持有信息
                        this.View.StyleManager.SetEnabled("FCrmHdOrgID", "", true);
                        this.View.StyleManager.SetEnabled("FCrmHdDept", "", true);
                        this.View.StyleManager.SetEnabled("FCrmHolder", "", true);
                    }
                }));
            }
        }
        /// <summary>
        /// 保存物料,并显示保存结果
        /// </summary>
        /// <param name="billView"></param>
        /// <returns></returns>
        private void SaveMaterial(IBillView billView, OperateOption saveOption)
        {
            // 设置FormId
            Form form = billView.BillBusinessInfo.GetForm();

            if (form.FormIdDynamicProperty != null)
            {
                form.FormIdDynamicProperty.SetValue(billView.Model.DataObject, form.Id);
            }

            // 调用保存操作
            IOperationResult saveResult = BusinessDataServiceHelper.Save(
                this.Context,
                billView.BillBusinessInfo,
                billView.Model.DataObject,
                saveOption,
                "Save");

            // 显示处理结果
            if (saveResult == null)
            {
                this.View.ShowErrMessage("未知原因导致保存物料失败!");
                return;
            }
            else if (saveResult.IsSuccess == true)
            {// 保存成功,直接显示
                this.View.ShowOperateResult(saveResult.OperateResult);
                return;
            }
            else if (saveResult.InteractionContext != null &&
                     saveResult.InteractionContext.Option.GetInteractionFlag().Count > 0)
            {// 保存失败,需要用户确认问题
                InteractionUtil.DoInteraction(this.View, saveResult, saveOption,
                                              new Action <FormResult, IInteractionResult, OperateOption>((
                                                                                                             formResult, opResult, option) =>
                {
                    // 用户确认完毕,重新调用保存处理
                    this.SaveMaterial(billView, option);
                }));
            }
            // 保存失败,显示错误信息
            if (saveResult.IsShowMessage)
            {
                saveResult.MergeValidateErrors();
                this.View.ShowOperateResult(saveResult.OperateResult);
                return;
            }
        }
        /// <summary>
        ///累加日计划面积
        /// </summary>
        /// <param name="e"></param>
        public override void EndOperationTransaction(EndOperationTransactionArgs e)
        {
            base.EndOperationTransaction(e);

            if (selectedRows != null && selectedRows.Count() != 0)
            {
                IMetaDataService metadataService = Kingdee.BOS.App.ServiceHelper.GetService <IMetaDataService>();

                //获取单据元数据
                FormMetadata BilMetada = metadataService.Load(Context, "SZXY_LYJTRSCJH") as FormMetadata;

                foreach (DynamicObject dy in selectedRows)
                {
                    string Id     = Convert.ToString(dy["Id"]);
                    string FormId = "SZXY_LYJTRSCJH";
                    if (dy["SZXY_XYLYEntry"] is DynamicObjectCollection entry)
                    {
                        decimal Area     = 0;
                        string  RJHFid   = string.Empty;
                        string  RJHRowId = string.Empty;
                        foreach (var item in entry.Where(m => !Convert.ToString(m["F_SZXY_PlasticNo"]).IsNullOrEmptyOrWhiteSpace()))
                        {
                            RJHFid   = Convert.ToString(item["F_SZXY_FID"]);
                            Area     = Convert.ToDecimal(item["F_SZXY_Area"]);
                            RJHRowId = Convert.ToString(item["F_SZXY_FEntryID"]);

                            if (Area != 0 && !RJHFid.IsNullOrEmptyOrWhiteSpace())
                            {
                                DynamicObject RJHObejct = Utils.LoadFIDBillObject(this.Context, FormId, RJHFid);
                                if (RJHObejct["SZXY_LYJTRSCJHEntry"] is DynamicObjectCollection SoureEntry)
                                {
                                    var Row = from row in SoureEntry
                                              where Convert.ToString(row["id"]).EqualsIgnoreCase(RJHRowId)
                                              select row;
                                    foreach (DynamicObject SoureRow in SoureEntry.Where(p => Convert.ToString(p["id"]).EqualsIgnoreCase(RJHRowId)))
                                    {
                                        Area += Convert.ToDecimal(SoureRow["F_SZXY_ProductionArea"]);
                                        SoureRow["F_SZXY_ProductionArea"] = Area;
                                    }
                                }
                                var saveResult = BusinessDataServiceHelper.Save(Context, BilMetada.BusinessInfo, RJHObejct);
                            }
                        }
                    }
                }
            }
        }
        public override void EndOperationTransaction(EndOperationTransactionArgs e)
        {
            base.EndOperationTransaction(e);

            if (selectedRows != null && selectedRows.Count() != 0)
            {
                IMetaDataService metadataService = Kingdee.BOS.App.ServiceHelper.GetService <IMetaDataService>();
                string           SoureFormId     = "SZXY_FHJTRSCJH";
                //获取单据元数据
                FormMetadata BilMetada = metadataService.Load(Context, SoureFormId) as FormMetadata;

                foreach (DynamicObject dy in selectedRows)
                {
                    string  Id       = Convert.ToString(dy["Id"]);
                    decimal Area     = 0;
                    string  RJHFid   = string.Empty;
                    string  RJHRowId = string.Empty;
                    RJHFid   = Convert.ToString(dy["F_SZXY_FIDH"]);
                    Area     = Convert.ToDecimal(dy["F_SZXY_InArea"]);
                    RJHRowId = Convert.ToString(dy["F_SZXY_FEntryIDH"]);
                    string F_SZXY_MotherVolume = Convert.ToString(dy["F_SZXY_MotherVolume"]);
                    string F_SZXY_ligature     = Convert.ToString(dy["F_SZXY_ligature"]);


                    if (Area != 0 && !RJHFid.IsNullOrEmptyOrWhiteSpace())
                    {
                        DynamicObject RJHObejct = Utils.LoadFIDBillObject(this.Context, SoureFormId, RJHFid);
                        if (RJHObejct["SZXY_FHJTRSCJHEntry"] is DynamicObjectCollection SoureEntry)
                        {
                            //var Row = from row in SoureEntry
                            //          where Convert.ToString(row["id"]).EqualsIgnoreCase(RJHRowId)
                            //          select row;
                            foreach (DynamicObject SoureRow in SoureEntry.Where(p => Convert.ToString(p["id"]).EqualsIgnoreCase(RJHRowId)))
                            {
                                decimal ResArea = Convert.ToDecimal(SoureRow["F_SZXY_ProductionArea"]) - Area;
                                SoureRow["F_SZXY_ProductionArea"] = ResArea;
                            }
                        }
                        var saveResult = BusinessDataServiceHelper.Save(Context, BilMetada.BusinessInfo, RJHObejct);
                    }
                }
            }
        }
Beispiel #9
0
        /// <summary>
        /// 检查报价变更
        /// </summary>
        private void CheckRptChanged()
        {
            string _FRptChange = "报价明细表体中报价变更如下:\n";
            string _BJBillNo   = this.View.BillModel.GetValue("FNicheID").ToString();
            string _sql        = string.Format("SELECT * FROM ora_CRM_SaleOfferBPR WHERE FID=(SELECT FID FROM ora_CRM_SaleOffer WHERE FBILLNO='{0}')", _BJBillNo);
            var    objs        = CZDB_GetData(_sql);

            if (objs.Count <= 0)
            {
                return;
            }
            var _FEntityBPR = this.View.BillModel.DataObject["FEntityBPR"] as DynamicObjectCollection;

            foreach (var CtcRow in _FEntityBPR)
            {
                int rowEid = int.Parse(CtcRow["FBprEID"].ToString());
                foreach (var SoRow in objs)
                {
                    int eid = int.Parse(SoRow["FBEntryID"].ToString());
                    if (rowEid == eid)
                    {
                        string ctcRpt = double.Parse(CtcRow["FBRptPrice"].ToString()).ToString("0.00");
                        string soRpt  = double.Parse(SoRow["FBRptPrice"].ToString()).ToString("0.00");
                        if (ctcRpt != soRpt)
                        {
                            string rowNum = CtcRow["SEQ"].ToString();
                            _FRptChange += string.Format("序号为{0}的行,报价从{1}元变更为{2}元。\n", rowNum, soRpt, ctcRpt);
                        }
                    }
                }
            }
            this.View.BillModel.SetValue("FRptChange", _FRptChange);
            //保存
            IOperationResult saveResult = BusinessDataServiceHelper.Save(
                this.Context,
                this.View.BillView.BillBusinessInfo,
                this.View.BillModel.DataObject
                );
        }
Beispiel #10
0
        /*
         *  触发时机:
         *  主菜单单击时触发
         *
         *  应用场景:
         *  通常动态表单在设计时主菜单都会配置平台内置提供的服务,有时有些用户可能需要在调用平台内置功能前进行权限验证、数据检查等等,用户也可以在该事件中通过添加e.Cancel=true取消平台内置功能,完全自定义处理逻辑.
         *
         *  案例演示:
         *  添加菜单按钮,点击后保存当前单据
         *  点击复制按钮时,已禁用的记录禁止复制
         *  添加菜单按钮,弹出消息框显示所有仓库的名称
         */
        public override void BarItemClick(BarItemClickEventArgs e)
        {
            base.BarItemClick(e);
            switch (e.BarItemKey)
            {
            //添加菜单按钮,点击后保存当前单据
            case "tbSaveTest":
                var result = BusinessDataServiceHelper.Save(this.Context, this.View.BillBusinessInfo, this.Model.DataObject);
                if (result.IsSuccess)
                {
                    this.View.ShowMessage("单据保存成功!");
                    this.Model.DataChanged = false;
                }
                return;

            //点击复制按钮时,已禁用的记录禁止复制
            case "tbCopy":
                var fieldValue = this.Model.GetValue("FForbidStatus");
                if (fieldValue != null && fieldValue.ToString() == "B")
                {
                    this.View.ShowMessage("当前数据已被禁用,禁止复制!");
                    e.Cancel = true;
                }
                return;

            //弹出消息框显示所有仓库的名称
            case "tbQueryStock":
                var selectItems       = SelectorItemInfo.CreateItems("FName");
                var dyList            = BusinessDataServiceHelper.Load(this.View.Context, "BD_STOCK", selectItems, null);
                var warehouseNameList = new List <string>();
                foreach (var dy in dyList)
                {
                    warehouseNameList.Add(dy["Name"].ToString());
                }
                this.View.ShowMessage("仓库名称:" + string.Join(",", warehouseNameList));
                return;
            }
        }
Beispiel #11
0
        /// <summary>
        /// 提示是否分配 by: ly
        /// </summary>
        /// <param name="_FCrmHolder"></param>
        /// <param name="_FCrmHdOrgID"></param>
        /// <param name="_FCrmHdDept"></param>
        private void ConfirmMsg(string _FCrmHolder, string _FCrmHdOrgID, string _FCrmHdDept)
        {
            if (CZ_GetValue("FDocumentStatus") == "Z")
            {
                return;
            }

            if (_FCrmHolder != "" && _FCrmHdOrgID != "" && _FCrmHdDept != "")
            {
                //存在BUG,不能在选择否时,使选择的持有人无效
                string FCrmHolderName = (this.View.Model.DataObject["FCrmHolder"] == null) ? "" : (this.View.Model.DataObject["FCrmHolder"] as DynamicObject)["Name"].ToString();
                this.View.ShowMessage("是否确定将本条线索分配给" + FCrmHolderName + "?", MessageBoxOptions.YesNo,
                                      new Action <MessageBoxResult>((result) =>
                {
                    if (result == MessageBoxResult.Yes)
                    {
                        this.View.Model.SetValue("FClueStatus", "2");
                        //锁定持有信息
                        this.View.StyleManager.SetEnabled("FCrmHdOrgID", "", false);
                        this.View.StyleManager.SetEnabled("FCrmHdDept", "", false);
                        this.View.StyleManager.SetEnabled("FCrmHolder", "", false);
                        //保存单据
                        IOperationResult saveResult = BusinessDataServiceHelper.Save(
                            this.Context,
                            this.View.BillBusinessInfo,
                            this.View.Model.DataObject
                            );
                        this.View.Refresh();
                        this.View.ShowMessage("分配完成!", MessageBoxOptions.OK, new Action <MessageBoxResult>((rslt) =>
                        {
                            this.View.Close();
                        }));
                    }
                }));
            }
        }
        private void SetBillValue(Context context, DataSet fillData, IBillView view, int erow, DynamicObject orgobj, string NoType)
        {
            DateTime dt = DateTime.Now;

            if (fillData != null && fillData.Tables.Count > 0 && fillData.Tables[0].Rows.Count > 0)
            {
                string value = "";
                DynamicObjectCollection entry1 = this.Model.DataObject["SZXY_XYCPJYEntry"] as DynamicObjectCollection;


                for (int i = 0; i < fillData.Tables[0].Rows.Count; i++)
                {
                    int index = erow + i;

                    //if (!Convert.ToString(fillData.Tables[0].Rows[i]["性能等级"]).IsNullOrEmptyOrWhiteSpace() && Convert.ToInt32(fillData.Tables[0].Rows[i]["性能等级"]) > 0)
                    //{
                    this.Model.CreateNewEntryRow("F_SZXY_XYCPJYEntity");

                    this.View.GetControl <EntryGrid>("F_SZXY_XYCPJYEntity").SetEnterMoveNextColumnCell(true);

                    IViewService viewService = ServiceHelper.GetService <IViewService>();
                    //物料编码
                    value = Convert.ToString(fillData.Tables[0].Rows[i]["产品型号"]);

                    if (!value.IsNullOrEmptyOrWhiteSpace())
                    {
                        string        RMat            = Utils.GetRootMatId(value, orgobj["Id"].ToString(), Context);
                        DynamicObject F_SZXY_Material = this.Model.GetValue("F_SZXY_Material", index) as DynamicObject;
                        if (RMat != "")
                        {
                            Utils.SetBaseDataValue(viewService, entry1[index], (BaseDataField)this.View.BusinessInfo.GetField("F_SZXY_Material"), Convert.ToInt64(RMat), ref F_SZXY_Material, Context);
                        }
                    }

                    if (this.Model.GetValue("F_SZXY_QAINSPECTOH") is DynamicObject opDo)
                    {
                        value = Convert.ToString(opDo["Id"]);

                        if (!value.IsNullOrEmptyOrWhiteSpace())
                        {
                            this.Model.SetValue("F_SZXY_QAInspecto", value, index);
                        }
                    }
                    this.Model.SetValue("F_SZXY_Date", Convert.ToDateTime(this.Model.GetValue("FDate")), index);

                    entry1[index]["F_SZXY_BarCode"] = Convert.ToString(fillData.Tables[0].Rows[i]["分切编号"]);

                    if (!Convert.ToString(fillData.Tables[0].Rows[i]["分切机"]).IsNullOrEmptyOrWhiteSpace())
                    {
                        this.Model.SetValue("F_SZXY_MNo", Convert.ToString(fillData.Tables[0].Rows[i]["分切机"]), index);
                    }

                    if (!Convert.ToString(fillData.Tables[0].Rows[i]["流延机"]).IsNullOrEmptyOrWhiteSpace())
                    {
                        this.Model.SetValue("F_SZXY_LYMac", Convert.ToString(fillData.Tables[0].Rows[i]["流延机"]), index);
                    }

                    if (!Convert.ToString(fillData.Tables[0].Rows[i]["产品编号"]).IsNullOrEmptyOrWhiteSpace())
                    {
                        this.Model.SetValue("F_SZXY_HNO", Convert.ToString(fillData.Tables[0].Rows[i]["产品编号"]), index);
                    }

                    //班组
                    value = Convert.ToString(fillData.Tables[0].Rows[i]["班组"]);

                    if (!value.IsNullOrEmptyOrWhiteSpace())
                    {
                        this.Model.SetValue("F_SZXY_Team", value, index);
                    }

                    value = Convert.ToString(fillData.Tables[0].Rows[i]["班次"]);

                    if (!value.IsNullOrEmptyOrWhiteSpace())
                    {
                        this.Model.SetValue("F_SZXY_Class", value, index);
                    }

                    //工位
                    value = Convert.ToString(fillData.Tables[0].Rows[i]["工位"]);

                    if (!value.IsNullOrEmptyOrWhiteSpace())
                    {
                        this.Model.SetValue("F_SZXY_Station", value, index);
                    }

                    value = Convert.ToString(fillData.Tables[0].Rows[i]["特殊标志"]);

                    if (!value.IsNullOrEmptyOrWhiteSpace())
                    {
                        this.Model.SetValue("F_SZXY_SpecialMark", value, index);
                    }

                    //性能等级
                    value = Convert.ToString(fillData.Tables[0].Rows[i]["性能等级"]);

                    if (!value.IsNullOrEmptyOrWhiteSpace())
                    {
                        this.Model.SetValue("F_SZXY_XNDJ1", value, index);
                    }


                    //厚度
                    value = Convert.ToString(fillData.Tables[0].Rows[i]["厚度"]);

                    if (!value.IsNullOrEmptyOrWhiteSpace())
                    {
                        this.Model.SetValue("F_SZXY_Ply", value, index);
                    }

                    //宽度
                    value = Convert.ToString(fillData.Tables[0].Rows[i]["宽度"]);

                    if (!value.IsNullOrEmptyOrWhiteSpace())
                    {
                        this.Model.SetValue("F_SZXY_Width", value, index);
                    }

                    //长度
                    value = Convert.ToString(fillData.Tables[0].Rows[i]["长度"]);

                    if (!value.IsNullOrEmptyOrWhiteSpace())
                    {
                        this.Model.SetValue("F_SZXY_LENGTH", Convert.ToDecimal(value), index);
                    }

                    //面积
                    value = Convert.ToString(fillData.Tables[0].Rows[i]["面积"]);

                    if (!value.IsNullOrEmptyOrWhiteSpace())
                    {
                        this.Model.SetValue("F_SZXY_Area", value, index);
                    }



                    //else
                    //{
                    //    this.View.ShowWarnningMessage("此编号没有性能等级!"); return;
                    //}
                    this.View.UpdateView("F_SZXY_XYCPJYEntity");
                    this.View.SetEntityFocusRow("F_SZXY_XYCPJYEntity", index + 1);
                }


                OperateOption saveOption = OperateOption.Create();
                view.Model.DataObject["FFormID"] = View.BillBusinessInfo.GetForm().Id;
                var saveResult = BusinessDataServiceHelper.Save(this.View.Context, View.BusinessInfo, view.Model.DataObject, saveOption, "Save");
            }
            else
            {
                this.View.ShowWarnningMessage("没有匹配到数据!"); return;
            }
        }
        /// <summary>
        /// 附件上传至本地临时目录后的回调函数
        /// PlugIn.Args.MobileUploadEventArgs
        /// Kingdee.BOS.Mobile.PlugIn.Args.MobileUploadEventArgs
        /// </summary>
        /// <param name="e">PlugIn.Args.MobileUploadEventArgs e</param>
        public override void AfterMobileUpload(Kingdee.BOS.Mobile.PlugIn.Args.MobileUploadEventArgs e)
        {
            // 获取服务器临时目录    HttpContext.Current.Request.PhysicalApplicationPath + KeyConst.TEMPFILEPATH;
            string tempDirPath = HttpContext.Current.Request.PhysicalApplicationPath + KeyConst.TEMPFILEPATH;
            // 获取附件表的元数据类
            var formMetadata = (FormMetadata)MetaDataServiceHelper.Load(this.Context, FormIdConst.BOS_Attachment);

            //TY:以下是取值 by 田杨
            //string _BillType = this.View.BillBusinessInfo.GetForm().Id;
            string _BillType = this.View.BillView.BusinessInfo.GetForm().Id;
            string _BillNo   = this.View.BillModel.DataObject["BillNo"].ToString(); //原始BOS单据【绑定实体属性】
            string _InterID  = this.View.BillModel.DataObject["Id"].ToString();

            /*  示例代码 从5.0
             * //_BillType = this.View.BillView.BusinessInfo.GetForm().Id;
             * //_BillNo = this.View.BillModel.DataObject["BillNo"];
             * //dyn["BillStatus"] = this.View.BillModel.DataObject["DocumentStatus"];
             * //_InterID = this.View.BillModel.DataObject["Id"];
             */

            List <DynamicObject> dynList = new List <DynamicObject>();
            StringBuilder        sb      = new StringBuilder();

            foreach (FiledUploadEntity file in e.FileNameArray)
            {
                // 检查文件是否成功上传到临时目录
                if (!file.IsSuccess)
                {
                    continue;
                }

                // 检查文件是否存在于临时目录
                var fileName = System.IO.Path.Combine(tempDirPath, file.FileName);
                if (!System.IO.File.Exists(fileName))
                {
                    continue;
                }

                /**
                 * 此处几个关键属性解读:
                 * 1. BillType  关联的模型的FormId
                 * 2. BillNo    关联的单据编号,用于确定此附件是属于哪张单据
                 * 3. InterID   关联的单据/基础资料ID,附件列表就是根据这个ID进行加载
                 * 4. EntryInterID  关联的单据体ID,这里我们只演示单据头,所以固定设置为-1
                 * 5. AttachmentSize    系统统一按照KB单位进行显示,所以需要除以1024
                 * 6. FileStorage   文件存储类型,0为数据库,1为文件服务,2为亚马逊云,3为金蝶云
                 */
                var dataBuff = System.IO.File.ReadAllBytes(fileName);
                var dyn      = new DynamicObject(formMetadata.BusinessInfo.GetDynamicObjectType());

                if (submitType != 0)
                {
                    // 将数据上传至文件服务器,并返回上传结果
                    var result = this.UploadAttachment(file.FileName, dataBuff);
                    if (!result.Success)
                    {
                        // 上传失败,收集失败信息
                        sb.AppendLine(string.Format("附件:{0},上传失败:{1}", file.FileName, result.Message));
                        continue;
                    }

                    // 通过这个FileId就可以从文件服务器下载到对应的附件
                    dyn["FileId"] = result.FileId;
                }
                else
                {
                    // 数据库的方式是直接保存附件数据
                    dyn["Attachment"] = dataBuff;
                }

                /*  示例代码 从6.1
                 * //// 此处我们不绑定到特定的单据,为了简化示例,只实现单纯的文件上传与下载
                 * //dyn["BillType"] = "Test_MOB_Accessory"; // 虚拟FormId
                 * //dyn["BillNo"] = "A00001"; // 虚拟的单据编号
                 * //dyn["InterID"] = "D00001"; // 虚拟的InterId,这个ID将作为我们下载的识别标识
                 *
                 *  示例代码 从5.0
                 * // 而实际插件开发可以从移动单据中获取到这些数据
                 * //dyn["BillType"] = this.View.BillView.BusinessInfo.GetForm().Id;
                 * //dyn["BillNo"] = this.View.BillModel.DataObject["BillNo"];
                 * ////dyn["BillStatus"] = this.View.BillModel.DataObject["DocumentStatus"];
                 * //dyn["InterID"] = this.View.BillModel.DataObject["Id"];
                 */

                dyn["BillType"] = _BillType;
                dyn["BillNo"]   = _BillNo;
                dyn["InterID"]  = _InterID;

                // 上传文件服务器成功后才加入列表
                dyn["AttachmentName"] = file.OldName;
                dyn["AttachmentSize"] = Math.Round(dataBuff.Length / 1024.0, 2);
                dyn["EntryInterID"]   = -1;// 参照属性解读

                dyn["CreateMen_Id"]    = Convert.ToInt32(this.Context.UserId);
                dyn["CreateMen"]       = GetUser(this.Context.UserId.ToString());
                dyn["ModifyTime"]      = dyn["CreateTime"] = TimeServiceHelper.GetSystemDateTime(this.Context);
                dyn["ExtName"]         = System.IO.Path.GetExtension(file.OldName);
                dyn["FileStorage"]     = submitType.ToString();
                dyn["EntryKey"]        = " ";
                dyn["IsAllowDownLoad"] = 0;//参考PC端,历史原因 0 允许下载,1 不允许下载

                dynList.Add(dyn);
            }

            if (dynList.Count > 0)
            {
                // 所有数据加载完成后再一次性保存全部
                BusinessDataServiceHelper.Save(this.Context, dynList.ToArray());

                sb.AppendLine();
                sb.AppendLine(string.Join(",", dynList.Select(dyn => dyn["AttachmentName"].ToString()).ToArray()) + ",上传成功");
            }

            //写入上传日志 增加判定 FLog不存在不写入
            if (this.Model.BillBusinessInfo.GetElement("FLog") != null)
            {
                this.Model.SetValue("FLog", sb.ToString());
            }

            base.AfterMobileUpload(e);

            this.View.ShowMessage("提交成功,是否退出页面?",
                                  MessageBoxOptions.YesNo,
                                  new Action <MessageBoxResult>((result) =>
            {
                if (result == MessageBoxResult.Yes)
                {
                    //关闭页面
                    //JSONObject arg = new JSONObject();
                    //arg.Put("pageId", this.View.PageId);
                    //this.View.AddAction("closeWebViewWithXT", arg);
                    this.View.Close();
                }
            })
                                  );
        }
Beispiel #14
0
        /// <summary>
        /// 绑定单据后,上传附件
        /// </summary>
        private string BindForm_UploadAttach()
        {
            if (jSONObject != null)
            {
                JSONArray jSONArray = new JSONArray(jSONObject["NewValue"].ToString());
                if (jSONArray.Count > 0)
                {
                    List <DynamicObject> dynList = new List <DynamicObject>();
                    StringBuilder        sb      = new StringBuilder();
                    for (int i = 0; i < jSONArray.Count; i++)
                    {
                        //获取上传的文件名
                        string serverFileName = (jSONArray[i] as Dictionary <string, object>)["ServerFileName"].ToString();
                        string fileName       = (jSONArray[i] as Dictionary <string, object>)["FileName"].ToString();
                        //文件上传到服务端的临时目录
                        string directory = "FileUpLoadServices\\UploadFiles";
                        //文件的完整路径
                        string fileFullPath = PathUtils.GetPhysicalPath(directory, serverFileName);

                        var formMetadata = (FormMetadata)MetaDataServiceHelper.Load(this.Context, FormIdConst.BOS_Attachment);
                        var dataBuff     = System.IO.File.ReadAllBytes(fileFullPath);
                        var dyn          = new DynamicObject(formMetadata.BusinessInfo.GetDynamicObjectType());

                        if (submitType != 0)
                        {
                            // 将数据上传至文件服务器,并返回上传结果
                            var result = this.UploadAttachment(fileName, dataBuff);
                            if (!result.Success)
                            {
                                // 上传失败,收集失败信息
                                sb.AppendLine(string.Format("附件:{0},上传失败:{1}", fileName, result.Message));
                                continue;
                            }

                            // 通过这个FileId就可以从文件服务器下载到对应的附件
                            dyn["FileId"] = result.FileId;
                        }
                        else
                        {
                            // 数据库的方式是直接保存附件数据
                            dyn["Attachment"] = dataBuff;
                        }
                        string _BillType = this.View.BusinessInfo.GetForm().Id;
                        string _BillNo   = this.View.Model.DataObject["BillNo"].ToString(); //原始BOS单据【绑定实体属性】
                        string _InterID  = this.View.Model.DataObject["Id"].ToString();

                        dyn["BillType"] = _BillType;
                        dyn["BillNo"]   = _BillNo;
                        dyn["InterID"]  = _InterID;

                        // 上传文件服务器成功后才加入列表
                        dyn["AttachmentName"] = fileName;
                        dyn["AttachmentSize"] = Math.Round(dataBuff.Length / 1024.0, 2);
                        dyn["EntryInterID"]   = -1;// 参照属性解读

                        dyn["CreateMen_Id"] = Convert.ToInt32(this.Context.UserId);
                        dyn["CreateMen"]    = GetUser(this.Context.UserId.ToString());
                        dyn["ModifyTime"]   = dyn["CreateTime"] = TimeServiceHelper.GetSystemDateTime(this.Context);
                        dyn["ExtName"]      = System.IO.Path.GetExtension(fileName);
                        dyn["FileStorage"]  = submitType.ToString();
                        dyn["EntryKey"]     = " ";

                        dynList.Add(dyn);
                    }
                    if (dynList.Count > 0)
                    {
                        // 所有数据加载完成后再一次性保存全部
                        BusinessDataServiceHelper.Save(this.Context, dynList.ToArray());

                        sb.AppendLine();
                        sb.AppendLine(string.Join(",", dynList.Select(dyn => dyn["AttachmentName"].ToString()).ToArray()) + ",上传成功");
                    }

                    //写入上传日志 增加判定 FLog不存在不写入
                    if (this.Model.BillBusinessInfo.GetElement("FLog") != null)
                    {
                        this.Model.SetValue("FLog", sb.ToString());
                    }
                    return(sb.ToString());
                }
            }
            return("");
        }
Beispiel #15
0
        }//end method

        public static DynamicObject[] Save(this IEnumerable <DynamicObject> dataObject, Context ctx)
        {
            return(BusinessDataServiceHelper.Save(ctx, dataObject.ToArray()));
        }//end method
        private void SetBillValue(Context context, DynamicObject orgobj, string WhereSql, IBillView view, int erow)
        {
            string XQty = Convert.ToString(this.Model.GetValue("F_SZXY_BoxQty"));//获取输入的箱数

            if (!WhereSql.IsNullOrEmptyOrWhiteSpace())
            {
                long orgid = Convert.ToInt64(orgobj["Id"]);

                string SQL = "/*dialect*/select t1.F_SZXY_MATERIAL,t1.F_SZXY_PLY,t1.F_SZXY_WIDTH,t1.F_SZXY,t1.F_SZXY_MANDREL,T5.F_SZXY_Text '客户订单号', " +
                             "t1.F_SZXY_CUSTID,t1.F_SZXY_PUDNO,t1.F_SZXY_CUSTNO,t1.F_SZXY_CUSTBACTH,t1.F_SZXY_PUDLINENO,T1.F_SZXY_CTNNO,t3.F_SZXY_MOID, " +
                             "t1.F_SZXY_SOSEQ1,t1.F_SZXY_SOENTRYID1,sum(t1.F_SZXY_AREA1) Area , " +
                             "sum(t1.F_SZXY_JQTY)  BOXCount ,T5.F_SZXY_SALER '销售员',T1.F_SZXY_DATE '包装日期',T5.F_SZXY_XSCUST '客户' " +
                             "from SZXY_t_BZDHEntry t1 " +
                             "join SZXY_t_BZD t3 on t1.FID = t3.FID " +
                             "left join T_PRD_MO T4 on T4.FBILLNO = t1.F_SZXY_PUDNO " +
                             "left join T_PRD_MOENTRY T5 on t5.FSEQ = t1.F_SZXY_PUDLINENO " +
                             $" where {WhereSql} " +
                             " group by t1.F_SZXY_MATERIAL,t1.F_SZXY_PLY,t1.F_SZXY_WIDTH,F_SZXY_CTNNO,t1.F_SZXY, " +
                             " t1.F_SZXY_MANDREL,t1.F_SZXY_CUSTID,t1.F_SZXY_PUDNO,t1.F_SZXY_CUSTNO, " +
                             " t1.F_SZXY_CUSTBACTH,t1.F_SZXY_PUDLINENO,t3.F_SZXY_MOID,t1.F_SZXY_SOSEQ1,t1.F_SZXY_SOENTRYID1 " +
                             ",T5.F_SZXY_SALER  ,T5.F_SZXY_SALER ,T5.F_SZXY_TEXT,T1.F_SZXY_DATE,T5.F_SZXY_XSCUST";

                //客户订单号获取客户PO号、日期获取包装日期、业务员、客户
                Logger.Debug("客户回签单", SQL);
                DataSet  fillData = DBServiceHelper.ExecuteDataSet(this.Context, SQL);
                DateTime dt       = DateTime.Now;
                if (fillData != null && fillData.Tables.Count > 0 && fillData.Tables[0].Rows.Count > 0)
                {
                    string value = "";

                    int mm = 0;


                    for (int i = 0; i < fillData.Tables[0].Rows.Count; i++)
                    {
                        mm = erow + i;

                        this.Model.BatchCreateNewEntryRow("F_SZXY_KHHQDEntity", 1);

                        this.View.UpdateView("F_SZXY_KHHQDEntity");

                        this.View.GetControl <EntryGrid>("F_SZXY_KHHQDEntity").SetEnterMoveNextColumnCell(true);

                        this.Model.SetValue("F_SZXY_CBNO1", Convert.ToString(this.Model.GetValue("F_SZXY_CBNO")), mm);

                        this.Model.SetValue("F_SZXY_BoxNo", Convert.ToString(fillData.Tables[0].Rows[i]["F_SZXY_CTNNO"]), mm);



                        IViewService viewService = ServiceHelper.GetService <IViewService>();
                        //物料编码
                        value = Convert.ToString(fillData.Tables[0].Rows[i][0]);

                        if (!value.IsNullOrEmptyOrWhiteSpace())
                        {
                            string RMat = Utils.GetRootMatId(value, orgid.ToString(), Context);
                            DynamicObjectCollection entry1          = this.Model.DataObject["SZXY_KHHQDEntry"] as DynamicObjectCollection;
                            DynamicObject           F_SZXY_Material = this.Model.GetValue("F_SZXY_Material", mm) as DynamicObject;
                            Utils.SetBaseDataValue(viewService, entry1[mm], (BaseDataField)this.View.BusinessInfo.GetField("F_SZXY_MATERIAL"), Convert.ToInt64(RMat), ref F_SZXY_Material, Context);
                        }
                        this.View.UpdateView("F_SZXY_Material", mm);

                        //客户代码
                        value = Convert.ToString(fillData.Tables[0].Rows[i]["客户"]);

                        if (!value.IsNullOrEmptyOrWhiteSpace())
                        {
                            //this.Model.SetValue("F_SZXY_Cust", value, mm);

                            string CustId = Utils.GetRootCustId(value, orgid.ToString(), Context);
                            this.Model.SetValue("F_SZXY_Cust", CustId, mm);
                            this.View.UpdateView("F_SZXY_Cust", mm);
                        }

                        this.Model.SetValue("F_SZXY_Date", Convert.ToString(fillData.Tables[0].Rows[i]["包装日期"]), mm);

                        value = Convert.ToString(fillData.Tables[0].Rows[i]["销售员"]);

                        if (!value.IsNullOrEmptyOrWhiteSpace())
                        {
                            this.Model.SetValue("F_SZXY_salesman", value, mm);
                        }
                        this.View.UpdateView("F_SZXY_salesman", mm);

                        //客户订单号
                        value = Convert.ToString(fillData.Tables[0].Rows[i]["客户订单号"]);

                        if (!value.IsNullOrEmptyOrWhiteSpace())
                        {
                            this.Model.SetValue("F_SZXY_CustOrderNo1", value, mm);
                        }


                        //卷数
                        value = Convert.ToString(fillData.Tables[0].Rows[i]["BOXCount"]);

                        if (!value.IsNullOrEmptyOrWhiteSpace())
                        {
                            this.Model.SetValue("F_SZXY_volume", value, mm);
                        }


                        //客户批号
                        value = Convert.ToString(fillData.Tables[0].Rows[i]["F_SZXY_CUSTBACTH"]);

                        if (!value.IsNullOrEmptyOrWhiteSpace())
                        {
                            this.Model.SetValue("F_SZXY_CustBacthNo", value, mm);
                        }


                        //生产订单编号
                        value = Convert.ToString(fillData.Tables[0].Rows[i]["F_SZXY_PUDNO"]);

                        if (!value.IsNullOrEmptyOrWhiteSpace())
                        {
                            this.Model.SetValue("F_SZXY_MONOE", value, mm);
                        }

                        //生产订单行号
                        value = Convert.ToString(fillData.Tables[0].Rows[i]["F_SZXY_PUDLINENO"]);

                        if (!value.IsNullOrEmptyOrWhiteSpace())
                        {
                            this.Model.SetValue("F_SZXY_MOLineNOE", value, mm);
                        }


                        //厚度
                        value = Convert.ToString(fillData.Tables[0].Rows[i][1]);

                        if (!value.IsNullOrEmptyOrWhiteSpace())
                        {
                            this.Model.SetValue("F_SZXY_Ply", value, mm);
                        }

                        //宽度
                        value = Convert.ToString(fillData.Tables[0].Rows[i][2]);

                        if (!value.IsNullOrEmptyOrWhiteSpace())
                        {
                            this.Model.SetValue("F_SZXY_Width", value, mm);
                        }

                        //长度
                        value = Convert.ToString(fillData.Tables[0].Rows[i]["F_SZXY"]);

                        if (!value.IsNullOrEmptyOrWhiteSpace())
                        {
                            this.Model.SetValue("F_SZXY_Len", value, mm);
                        }

                        //面积
                        value = Convert.ToString(fillData.Tables[0].Rows[i]["Area"]);

                        if (!value.IsNullOrEmptyOrWhiteSpace())
                        {
                            this.Model.SetValue("F_SZXY_Area", value, mm);
                        }



                        if (mm > 0 && (mm % Convert.ToInt32(XQty)) == 0)
                        {
                            string KBNO = GenNo(Context, this.View.BusinessInfo.GetForm().Id, orgobj, Convert.ToDateTime(this.Model.GetValue("FDate")));
                            if (!KBNO.IsNullOrEmptyOrWhiteSpace())
                            {
                                this.Model.SetValue("F_SZXY_CBNO", KBNO);
                                this.Model.SetValue("F_SZXY_CBNO1", KBNO, mm);    //单据体卡板号
                            }
                        }


                        if (erow == 0 && mm == 0)
                        {
                            string KBNO = GenNo(Context, this.View.BusinessInfo.GetForm().Id, orgobj, Convert.ToDateTime(this.Model.GetValue("FDate")));
                            if (!KBNO.IsNullOrEmptyOrWhiteSpace())
                            {
                                this.Model.SetValue("F_SZXY_CBNO", KBNO);
                                this.Model.SetValue("F_SZXY_CBNO1", KBNO, erow);
                            }
                        }
                        this.View.SetEntityFocusRow("F_SZXY_KHHQDEntity", mm + 1);
                    }



                    OperateOption saveOption = OperateOption.Create();
                    view.Model.DataObject["FFormID"] = View.BillBusinessInfo.GetForm().Id;
                    var saveResult = BusinessDataServiceHelper.Save(this.View.Context, View.BusinessInfo, view.Model.DataObject, saveOption, "Save");
                    this.View.UpdateView("F_SZXY_KHHQDEntity");
                }
                else
                {
                    this.View.ShowWarnningMessage("没有匹配到数据!"); return;
                }
            }
        }
Beispiel #17
0
        //创建销售预测变更单
        private void CreateForecastChangeBill()
        {
            //分组集合
            List <string> lstGroups = new List <string>();
            string        sGroup    = string.Empty;

            foreach (DynamicObject lstEntry in lstEntrys)
            {
                sGroup = Convert.ToString(lstEntry["FSaleOrgId_ID"]) + "+" + Convert.ToString(lstEntry["FSaleDeptId_ID"]) + "+" +
                         Convert.ToString(lstEntry["FSaleGroupId_ID"]) + "+" + Convert.ToString(lstEntry["FSalerId_ID"]);
                if (!lstGroups.Contains(sGroup))
                {
                    lstGroups.Add(sGroup);
                }
            }

            //插入数据

            //销售预测变更单的信息
            BusinessInfo businessInfo = ((FormMetadata)MetaDataServiceHelper.Load(this.Context, "JN_YDL_SAL_ForecastChange", true)).BusinessInfo;

            DynamicObject           billHead   = null;
            DynamicObjectCollection billEntrys = null;
            List <DynamicObject>    lstBills   = new List <DynamicObject>();
            List <DynamicObject>    lstSelectEntrys;

            long lSaleOrgId   = 0;
            long lSaleDeptId  = 0;
            long lSaleGroupId = 0;
            long lSalerId     = 0;

            foreach (string lstGroup in lstGroups)
            {
                //单据头
                billHead = businessInfo.GetDynamicObjectType().CreateInstance() as DynamicObject;
                //单据体
                billEntrys = billHead["FEntity"] as DynamicObjectCollection;

                if (billHead == null || billEntrys == null)
                {
                    continue;
                }

                string[] sGroupSplit = lstGroup.Split('+');

                if (sGroupSplit == null || sGroupSplit.Count() != 4)
                {
                    continue;
                }

                lSaleOrgId   = Convert.ToInt64(sGroupSplit[0]);
                lSaleDeptId  = Convert.ToInt64(sGroupSplit[1]);
                lSaleGroupId = Convert.ToInt64(sGroupSplit[2]);
                lSalerId     = Convert.ToInt64(sGroupSplit[3]);

                billHead["FBillTypeID_Id"]    = "58b2a721c7f776";
                billHead["FJNSaleOrgId_Id"]   = lSaleOrgId;
                billHead["FJNSaleDeptId_Id"]  = lSaleDeptId;
                billHead["FJNSaleGroupId_Id"] = lSaleGroupId;
                billHead["FJNSalerId_Id"]     = lSalerId;
                billHead["FDocumentStatus"]   = "A";
                billHead["FJNDate"]           = DateTime.Now;
                billHead["FDirection"]        = sAdjustType == "A" ? "B" : "A";
                billHead["FCreateDate"]       = DateTime.Now;
                billHead["FCreatorId_Id"]     = this.Context.UserId;

                lstSelectEntrys = lstEntrys.Where(p => Convert.ToInt64(p["FSaleOrgId_Id"]) == lSaleOrgId && Convert.ToInt64(p["FSaleDeptId_Id"]) == lSaleDeptId && Convert.ToInt64(p["FSaleGroupId_Id"]) == lSaleGroupId && Convert.ToInt64(p["FSalerId_Id"]) == lSalerId).ToList();

                if (lstSelectEntrys == null || lstSelectEntrys.Count() <= 0)
                {
                    continue;
                }

                int seq = 1;
                foreach (DynamicObject entry in lstSelectEntrys)
                {
                    DynamicObject billEntry = new DynamicObject(billEntrys.DynamicCollectionItemPropertyType);
                    billEntry["Seq"] = seq;
                    billEntry["FJNMaterialId_Id"] = entry["FMaterialId_Id"];
                    billEntry["FJNAUXPROP_Id"]    = entry["FAuxPropId_Id"];
                    billEntry["FJNForecastQty"]   = entry["FAdjustQty"];
                    billEntry["FJNUnitID_Id"]     = entry["FUnitID_Id"];
                    billEntry["FJNBaseUnitID_Id"] = entry["FUnitID_Id"];
                    billEntry["FJNBaseUnitQty"]   = entry["FAdjustQty"];

                    billEntry["FJNStockOrg_Id"]  = this.Context.CurrentOrganizationInfo.ID;
                    billEntry["FJNSettleOrg_Id"] = this.Context.CurrentOrganizationInfo.ID;
                    billEntry["FJNSupplyOrg_Id"] = this.Context.CurrentOrganizationInfo.ID;
                    DynamicObject material = entry["FMaterialId"] as DynamicObject;
                    if (material != null)
                    {
                        string Materialname = material["Name"].ToString();
                        string sql          = "";
                        if (Materialname.IndexOf("(内蒙)") > 0 || Materialname.IndexOf("(内蒙)") > 0 || Materialname.IndexOf("(内蒙)") > 0)
                        {
                            billEntry["FJNSupplyOrg_Id"] = 100063;
                            sql = string.Format(@"select t2.FWORKSHOPID  as FWORKSHOPID from T_BD_MATERIAL  t1
join T_BD_MATERIALPRODUCE t2 on t1.FMATERIALID=t2.FMATERIALID
where t1.FMASTERID in(
select FMASTERID from T_BD_MATERIAL where FMATERIALID={0})
and t1.FUSEORGID={1}", Convert.ToInt32(entry["FMaterialId_Id"]), 100063);
                        }
                        else
                        {
                            billEntry["FJNSupplyOrg_Id"] = 100062;
                            sql = string.Format(@"select t2.FWORKSHOPID  as FWORKSHOPID from T_BD_MATERIAL  t1
join T_BD_MATERIALPRODUCE t2 on t1.FMATERIALID=t2.FMATERIALID
where t1.FMASTERID in(
select FMASTERID from T_BD_MATERIAL where FMATERIALID={0})
and t1.FUSEORGID={1}", Convert.ToInt32(entry["FMaterialId_Id"]), 100062);
                        }

                        DynamicObjectCollection FWORKSHOPID = DBServiceHelper.ExecuteDynamicObject(this.Context, sql);
                        if (FWORKSHOPID.Count > 0)
                        {
                            int WORKSHOP = Convert.ToInt32(FWORKSHOPID[0]["FWORKSHOPID"]);
                            billEntry["F_VTR_PrdDeptId_Id"] = WORKSHOP;
                        }

                        /* else
                         * {
                         *   billEntry["F_VTR_PrdDeptId"] = 0;
                         * }*/
                    }

                    billEntrys.Add(billEntry);
                    seq++;
                }

                lstBills.Add(billHead);
            }

            if (lstBills.Count <= 0)
            {
                return;
            }

            //生成编码
            MakeBillNo(lstBills);

            Kingdee.BOS.ServiceHelper.DBServiceHelper.LoadReferenceObject(this.Context, lstBills.ToArray(), businessInfo.GetDynamicObjectType(), false);
            DynamicObject[] billDatas = BusinessDataServiceHelper.Save(this.Context, lstBills.ToArray());

            if (billDatas == null || billDatas.Count() <= 0)
            {
                //K3DisplayerModel model = K3DisplayerModel.Create(this.Context, "调整失败,未成功创建销售预测变更单");
                //// 创建一个交互提示错误对象,并设置错误来源,相互隔离
                //KDInteractionException ie = new KDInteractionException("错误提示");
                //ie.InteractionContext.InteractionFormId = FormIdConst.BOS_K3Displayer; // 提示信息显示界面
                //ie.InteractionContext.K3DisplayerModel = model; // 提示内容
                //ie.InteractionContext.IsInteractive = true; // 是否需要交互
                //throw ie; // 抛出错误,终止流程
                this.OperationResult.OperateResult[0].SuccessStatus = false;
                this.OperationResult.OperateResult[0].Message       = "创建销售预测变更单失败";
            }
            else
            {
                OperateResult result;
                foreach (var item in billDatas)
                {
                    result = new OperateResult
                    {
                        SuccessStatus = true,
                        Message       = "创建销售预测变更单成功",
                        MessageType   = MessageType.Normal,
                        Name          = "生成销售预测变更单:" + Convert.ToString(item["FBillNo"]) + "成功",
                        PKValue       = item
                    };
                    this.OperationResult.OperateResult.Add(result);
                }
            }
            this.OperationResult.IsShowMessage = true;
        }
Beispiel #18
0
        }//end method

        public static DynamicObject Save(this DynamicObject dataObject, Context ctx)
        {
            return(BusinessDataServiceHelper.Save(ctx, dataObject));
        }
Beispiel #19
0
        public static IOperationResult DoAction(Context context, string[] selPKArray, Enum_OPPAction action)
        {
            IOperationResult            operationResult         = new OperationResult();
            OperateResultCollection     operateResultCollection = new OperateResultCollection();
            Dictionary <string, string> dictionary = new Dictionary <string, string>();
            List <DynamicObject>        list       = new List <DynamicObject>();
            FormMetadata formMetadata = (FormMetadata)MetaDataServiceHelper.Load(context, "CRM_OPP_Opportunity", true);
            BusinessInfo businessInfo = formMetadata.BusinessInfo;

            DynamicObject[] array = BusinessDataServiceHelper.Load(context, selPKArray, businessInfo.GetDynamicObjectType());
            if (array == null || array.Length == 0)
            {
                operateResultCollection.Add(OpportunityCommon.CreateOperateResult(false, ResManager.LoadKDString("未找到对应的数据,可能已被删除!", "006008030001276", SubSystemType.CRM, new object[0])));
                operationResult.OperateResult = operateResultCollection;
                return(operationResult);
            }
            DynamicObject[] array2 = array;
            for (int i = 0; i < array2.Length; i++)
            {
                DynamicObject dynamicObject = array2[i];
                string        text          = CheckBeforeAction(dynamicObject, action);
                if (text != "")
                {
                    operateResultCollection.Add(OpportunityCommon.CreateOperateResult(false, text));
                    operationResult.OperateResult = operateResultCollection;
                }
                else
                {
                    if (action == Enum_OPPAction.WIN)
                    {
                        dynamicObject["FDocumentStatus"] = "E";
                    }
                    else
                    {
                        if (action == Enum_OPPAction.LOSE)
                        {
                            dynamicObject["FDocumentStatus"] = "F";
                        }
                        else
                        {
                            if (action == Enum_OPPAction.UNWIN || action == Enum_OPPAction.UNLOSE)
                            {
                                dynamicObject["FDocumentStatus"] = "G";
                            }
                        }
                    }
                    if (action == Enum_OPPAction.WIN || action == Enum_OPPAction.LOSE)
                    {
                        DynamicObjectCollection dynamicObjectCollection = dynamicObject["T_CRM_OppPhase"] as DynamicObjectCollection;
                        foreach (DynamicObject current in dynamicObjectCollection)
                        {
                            if (current["FIsCurrent"].ToString() == "True")
                            {
                                current["FEndtimeReal"] = DateTime.Now;
                                break;
                            }
                        }
                    }
                    dictionary.Add(dynamicObject["Id"].ToString(), dynamicObject["FOPPName"].ToString());
                    list.Add(dynamicObject);
                }
            }
            if (list.Count > 0)
            {
                IOperationResult operationResult2 = BusinessDataServiceHelper.Save(context, businessInfo, list.ToArray(), null, "");
                if (action == Enum_OPPAction.WIN || action == Enum_OPPAction.LOSE)
                {
                    Dictionary <string, string> dictionary2 = new Dictionary <string, string>();
                    string format = ResManager.LoadKDString("赢单商机【{0}】", "006008030001476", SubSystemType.CRM, new object[0]);
                    string text2  = "Win";
                    if (action == Enum_OPPAction.LOSE)
                    {
                        format = ResManager.LoadKDString("输单商机【{0}】", "006008030001477", SubSystemType.CRM, new object[0]);
                        text2  = "Lose";
                    }
                    foreach (OperateResult current2 in operationResult2.OperateResult)
                    {
                        if (current2.SuccessStatus)
                        {
                            dictionary2.Add(current2.PKValue.ToString(), string.Format(format, dictionary[current2.PKValue.ToString()]));
                        }
                    }
                    if (dictionary2.Count > 0)
                    {
                        ILatestInfoService latestInfoService = ServiceFactory.GetLatestInfoService(context);
                        latestInfoService.AddActionInfo(context, "CRM_OPP_Opportunity", text2, dictionary2);
                    }
                }
                if (operationResult.OperateResult.Count > 0)
                {
                    using (IEnumerator <OperateResult> enumerator3 = operationResult2.OperateResult.GetEnumerator())
                    {
                        while (enumerator3.MoveNext())
                        {
                            OperateResult current3 = enumerator3.Current;
                            operationResult.OperateResult.Add(current3);
                        }
                        return(operationResult);
                    }
                }
                operationResult.OperateResult = operationResult2.OperateResult;
            }
            return(operationResult);
        }
Beispiel #20
0
 public static IOperationResult Save(this DynamicObject dataObject, Context ctx, BusinessInfo businessInfo, OperateOption option = null)
 {
     return(BusinessDataServiceHelper.Save(ctx, businessInfo, dataObject, option));
 }//end method