UI插件:表单工具栏加按钮

    internal class ReturnMainUIFormWebPart : UFSoft.UBF.UI.Custom.ExtendedPartBase
    {

        #region 字段与属性                   


        private UFIDA.U9.SCM.PM.ReturnUI.ReturnMainUIFormWebPart _strongPart;

        #endregion
        public override void AfterInit(UFSoft.UBF.UI.IView.IPart Part, EventArgs args)
        {
            #region 获取相关强类型数据                               
            _strongPart = Part as UFIDA.U9.SCM.PM.ReturnUI.ReturnMainUIFormWebPart;
            if (_strongPart == null)
                return;
            //用户不等于yy12去掉插件
            var UserCode = UFIDA.U9.UI.PDHelper.PDContext.Current.UserCode;
            if (UserCode != "YY12")
                return;

            #endregion
            //1、在工具栏上添加
            //订单链接
            IUFButton btnReceivementUrl = new UFWebButtonAdapter();
            btnReceivementUrl.ID = "BtnReceivementUrl1";
            btnReceivementUrl.AutoPostBack = true;
            //(2)、找到工具栏控件
            IUFToolbar _Toolbar = (IUFToolbar)_strongPart.FindControl("Toolbar2");
            //(3)、将按钮添加到工具栏
            btnReceivementUrl = UIControlBuilder.BuilderToolbarButton(_Toolbar, "True", "BtnReceivementUrl1", "True", "True", 85, 38, "8", "", true, false, "86E9489B-2EC7-7AA5-359E-1A92EB0D2219", "86E9489B-2EC7-7AA5-359E-1A92EB0D2219", "86E9489B-2EC7-7AA5-359E-1A92EB0D2219");
            UIControlBuilder.SetButtonAccessKey(btnReceivementUrl);
            btnReceivementUrl.UIModel = _strongPart.Model.ElementID;
            btnReceivementUrl.Action = "异常退货推送";
            btnReceivementUrl.Text = "异常退货推送";
            ((UFWebToolbarAdapter)_Toolbar).Items.Add(btnReceivementUrl as System.Web.UI.WebControls.WebControl);
            //(4)、绑定按钮事件
            btnReceivementUrl.Click += new EventHandler(BtnReceivementUrl_Click);

        }


        /// <summary>
        /// 异常收货推送
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnReceivementUrl_Click(object sender, EventArgs e)
        {
            this._strongPart.OnDataCollect(this);
            this._strongPart.IsDataBinding = true;
            var receivement = this._strongPart.Model.Receivement;
            bool flag = ((receivement != null) ? receivement.FocusedRecord : null) == null;
            if (!flag)
            {
                string text = "";
                string text2 = "";
                try
                {
                    using (new BPForEngine())
                    {
                        bool flag2 = this._strongPart.Model.Receivement.FocusedRecord.ID > 0L;
                        if (flag2)
                        {
                            var focusedRecord = this._strongPart.Model.Receivement.FocusedRecord;
                            Receivement receivement2 = Receivement.Finder.FindByID(focusedRecord.ID);
                            bool flag3 = receivement2 == null;
                            if (flag3)
                            {
                                return;
                            }
                            StringBuilder stringBuilder = new StringBuilder();
                            stringBuilder.Append("update PM_RcvLine set DescFlexSegments_PrivateDescSeg22 = 'True' where ID in (select PM_RcvLine.ID from PM_Receivement join PM_RcvLine  on PM_RcvLine.Receivement = PM_Receivement.ID where  PM_Receivement.ID = " + this._strongPart.Model.Receivement.FocusedRecord.ID.ToString() + " )");

                            DataAccessor.RunSQL(DataAccessor.GetConn(), stringBuilder.ToString(), null);
                        }
                        var focusedRecord2 = this._strongPart.Model.Receivement.FocusedRecord;
                        Receivement receivement3 = Receivement.Finder.FindByID(focusedRecord2.ID);
                        bool flag4 = receivement3 == null;
                        if (!flag4)
                        {
                            Data data = new Data();
                            headerData headerData = new headerData();
                            headerData.applicationCode = getnamexml("applicationCode");
                            headerData.applicationGroupCode = getnamexml("applicationGroupCode");
                            headerData.batchCount = getnamexml("batchCount");
                            DateTime d = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                            headerData.batchNum = (DateTime.UtcNow - d).TotalSeconds.ToString().Replace(".", "");
                            headerData.externalSystemCode = getnamexml("externalSystemCode");
                            headerData.interfaceCode = getnamexml("RCVinterfaceCodel");
                            headerData.userName = getnamexml("userName");
                            data.header = headerData;
                            List<bodyData> list = new List<bodyData>();
                            bodyData bodyData = new bodyData();
                            bodyData.esTrxNum = receivement3.DocNo;
                            bodyData.trxYear = receivement3.ApprovedOn.ToString("yyyy"); //
                            bodyData.esOuCode = receivement3.AccountOrg.Code;
                            bodyData.trxDate = receivement3.RcvLines[0].ConfirmDate.ToString("yyyy-MM-dd HH:mm:ss");
                            bodyData.sourceCode = "ERP";
                            List<rcvTrxLineList> list2 = new List<rcvTrxLineList>();
                            foreach (RcvLine rcvLine in receivement3.RcvLines)
                            {
                                bool flag5 = rcvLine.SrcSubLine != null;
                                if (!flag5)
                                {
                                    bool flag6 = rcvLine.RcvQtyTU == 0m;
                                    if (!flag6)
                                    {
                                        PurchaseOrder purchaseOrder = PurchaseOrder.Finder.FindByID(rcvLine.SrcDoc.SrcDoc.EntityID);
                                        bool flag7 = purchaseOrder != null && string.IsNullOrWhiteSpace(purchaseOrder.DescFlexField.PrivateDescSeg16);
                                        if (!flag7)
                                        {
                                            rcvTrxLineList rcvTrxLineList = new rcvTrxLineList();
                                            rcvTrxLineList.esTrxLineNum = rcvLine.DocLineNo.ToString();
                                            rcvTrxLineList.trxDate = rcvLine.ConfirmDate.ToString("yyyy-MM-dd HH:mm:ss");
                                            rcvTrxLineList.trxYear = rcvLine.ConfirmDate.ToString("yyyy");
                                            rcvTrxLineList.esTrxTypeCode = "RETURN_DIRECT";
                                            rcvTrxLineList.quantity = rcvLine.RcvQtyTU + rcvLine.DestroyQtyTU;
                                            bool flag8 = receivement3.DocType.Code == "M06";
                                            if (flag8)
                                            {
                                                rcvTrxLineList.stockType = "CONSIGNMENT";
                                            }
                                            else
                                            {
                                                rcvTrxLineList.stockType = "OWN_STOCK";
                                            }
                                            rcvTrxLineList.currencyCode = receivement3.TC.ISOCode.Name;
                                            if (!String.IsNullOrWhiteSpace(receivement3.Supplier.Supplier.DescFlexField.PrivateDescSeg19) && receivement3.Supplier.Supplier.DescFlexField.PrivateDescSeg19 == "1")
                                            {
                                                rcvTrxLineList.currencyCode = receivement3.AC.ISOCode.Name;
                                            }
                                            rcvTrxLineList.esOuCode = rcvLine.AccountOrg.Code;
                                            rcvTrxLineList.esSupplierNum = receivement3.Supplier.Code;
                                            bool flag9 = rcvLine.InvLot != null;
                                            if (flag9)
                                            {
                                                rcvTrxLineList.attributeVarchar1 = rcvLine.InvLot.LotCode;
                                            }
                                            rcvTrxLineList.esFromPoNum = purchaseOrder.DescFlexField.PrivateDescSeg16;
                                            POLine poline = POLine.Finder.FindByID(rcvLine.SrcDoc.SrcDocLine.EntityID);
                                            bool flag10 = poline != null;
                                            if (flag10)
                                            {
                                                rcvTrxLineList.esFromPoLineNum = poline.DescFlexSegments.PrivateDescSeg27;
                                            }
                                            rcvTrxLineList.esFromAsnNum = receivement3.DescFlexField.PrivateDescSeg6;
                                            rcvTrxLineList.esFromAsnLineNum = rcvLine.DescFlexSegments.PrivateDescSeg16;
                                            list2.Add(rcvTrxLineList);
                                        }
                                    }
                                }
                            }
                            bodyData.rcvTrxLineList = list2;
                            list.Add(bodyData);
                            data.body = list;
                            bool flag11 = bodyData.rcvTrxLineList.Count > 0;
                            if (flag11)
                            {
                                text2 = JsonConvert.SerializeObject(data);
                                text = getnamexml("RCVURL");
                                string text3 = DataBaseHelper.HttpPost(text, text2);
                                JObject jobject = JObject.Parse(text3);
                                string a = (string)jobject["executeResult"];
                                bool flag12 = a != "SUCCESS";
                                if (flag12)
                                {
                                    throw new Exception(text3);
                                }
                                DataBaseHelper.Info("合兴插件日志", "异常退货推送", text, text2, text3);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    DataBaseHelper.Info("合兴插件日志", "异常退货推送", text, text2, ex.Message);
                    this._strongPart.Model.ErrorMessage.Message = ex.Message;
                }
            }
        }


        /// <summary>
        /// 获取xml信息
        /// </summary>
        /// <returns></returns>
        public static string getnamexml(string code)
        {
            string text = "";
            #region 获取XML信息
            try
            {
                XmlDocument doc = new XmlDocument();
                doc.Load("D:\\yonyou\\U9V60\\@HX_ConfigFile.xml");

                XmlNode root = doc.SelectSingleNode("//connectionString");
                text = (root.SelectSingleNode(code)).InnerText;
                return text;
            }
            catch (Exception)
            {
                return "失败";
            }
            #endregion
        }
    }

 

posted @ 2025-09-05 13:46  江境纣州  阅读(8)  评论(0)    收藏  举报