lu
2025-08-17 9b7bc5872818f11125dda5b07da1762ec31db9e7
DevApp/Gs.DevApp/DevFrm/Sales/Frm_SalesReturnNotice.cs
@@ -1,5 +1,6 @@
using DevExpress.XtraEditors;
using Gs.DevApp.DevFrm.Rpt;
using Gs.DevApp.DevFrm.Sales;
using Gs.DevApp.Entity;
using Gs.DevApp.ToolBox;
using Gs.DevApp.UserControl;
@@ -17,7 +18,9 @@
    {
        string _webServiceName = "SalesReturnManager/";
        List<FilterEntity> _filterList = new List<FilterEntity>();
        string _ucCk = "";//发料仓库
        string _ucCk = "";//仓库
        string _ucKh = "";//客户
        string _ucBm = "";//部门
        public Frm_SalesReturnNotice()
        {
            InitializeComponent();
@@ -47,35 +50,6 @@
            }, lbGuid);
            getPageList(1);
            pageBar1.PagerEvent += PageBar1_PagerEvent;
            // 设置销售单
            txt_salesOrderId.getSuppler("", "");
            this.txt_salesOrderId.EditChanged += (s, e) =>
            {
                //有没有销售订单
                string _sqGuid = txt_salesOrderId.GetId();
                if (string.IsNullOrEmpty(_sqGuid))
                    return;
                txt_custName.Text = txt_salesOrderId.GetSalesCusName();
                txt_xsOrgName.Text = txt_salesOrderId.GetSalesOrgName();
                string _xsOrgFid = txt_salesOrderId.GetSalesOrgFid();
                txt_fstockid.getSuppler(_xsOrgFid, _ucCk);
                System.Text.StringBuilder sbWhere = new System.Text.StringBuilder();
                var _obj = new PageQueryModel(1, 999999, "item_no", "asc", "", sbWhere.ToString(), _sqGuid);
                var json = JsonConvert.SerializeObject(_obj);
                try
                {
                    var strReturn = UtilityHelper.HttpPost("",
                        "SalesManager/SelectFormFhMx", json);
                    var rtn = UtilityHelper.ReturnToTablePage(strReturn);
                    var dt = rtn.rtnData.list;
                    this.repositoryItemSearchLookUpEdit1.DataSource = dt;
                    repositoryItemSearchLookUpEdit1.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
                }
                catch (Exception ex)
                {
                    MsgHelper.ShowError("提示:" + ex.Message);
                }
            };
            //打印事件
            this.ucBtnPrint1.btnPrintClick += (s, e) =>
            {
@@ -160,8 +134,125 @@
            {
                Gs.DevApp.ToolBox.UtilityHelper.PrintAuto(txt_psnQty_1, txt_iCount_1, radOut, txt_yuliang_1);
            };
            //销售组织
            txt_salesOrg.EditChanged += (s, e) =>
            {
                var orgId = txt_salesOrg.GetId();
                if (string.IsNullOrEmpty(orgId))
                    return;
                txt_fstockid.getSuppler(orgId, _ucCk);
                txt_inventoryOrg.SetIdOrCode(orgId);
                txt_salesDept.getSuppler(orgId,_ucBm);
                txt_returnCustomer.getSuppler(orgId,_ucKh);
            };
            //销售部门
            txt_salesDept.EditChanged += (s, e) =>
            {
                var dptId = txt_salesDept.GetId();
                if (string.IsNullOrEmpty(dptId))
                    return;
                txt_saleDeptName.Text=(txt_salesDept.GetName());
            };
            //选择需要的明细
            btnSelect.Click += (s, e) =>
            {
                if (string.IsNullOrEmpty(this.txt_salesOrg.GetId()))
                {
                    Gs.DevApp.ToolBox.MsgHelper.ShowError("请先选择销售组织!");
                    return;
                }
                if (string.IsNullOrEmpty(this.txt_returnCustomer.GetId()))
                {
                    Gs.DevApp.ToolBox.MsgHelper.ShowError("请先选择客户!");
                    return;
                }
                if (txt_fHasLinkRad.SelectedIndex == 0)
                {
                    var frm = new Frm_SalesReturnNoticeSelect(this.txt_returnCustomer.GetId(), this.txt_salesOrg.GetId());
                    //赋值给明细表
                    frm.UpdateParent += (ss, ee) =>
                    {
                        try
                        {
                            var lst = new List<string>();
                            lst = ee.StringList;
                            var _obj = lst;
                            var strReturn = UtilityHelper.HttpPost("",
                                _webServiceName + "SelectFormTo",
                                JsonConvert.SerializeObject(_obj));
                            var dt = UtilityHelper.ReturnToList(strReturn);
                            DataTable _newTable = dt.rtnData;
                            DataTable _oldTable = (DataTable)gcMx1.DataSource;
                            DataRow[] sourceRows = _newTable.Select();
                            for (int i = 0; i < sourceRows.Length; i++)
                            {
                                _oldTable.ImportRow(sourceRows[i]);
                            }
                            gcMx1.BindingContext = new BindingContext();
                            gcMx1.DataSource = _oldTable;
                            gcMx1.ForceInitialize();
                            gvMx1.BestFitColumns();
                            Gs.DevApp.ToolBox.UtilityHelper.SetGridLayout(gvMx1);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                    };
                    frm.ShowDialog();
                    return;
                }
                if (txt_fHasLinkRad.SelectedIndex == 1)
                {
                    var frm2 = new Frm_SalesReturnNoticeSelectLink(this.txt_salesOrg.GetId());
                    frm2.UpdateParent += (ss, ee) =>
                    {
                        try
                        {
                            var lst = ee.DynamicList;
                            DataTable _Table = (DataTable)gcMx1.DataSource;
                            foreach (dynamic dym in lst)
                            {
                                DataRow _row = _Table.NewRow();
                                _row["guid"] = dym.guid;
                                _row["deliveDetailGuid"] = dym.deliveDetailGuid;//送货明细guid
                                _row["itemId"] = dym.itemId;
                                _row["itemNo"] = dym.itemNo; //物料编号,
                                _row["itemName"] = dym.itemName;  //物料名称,
                                _row["itemModel"] = dym.itemModel;//规格型号,
                                _row["xxDw"] = dym.xxDw;
                                _row["salesQuantity"] = dym.salesQuantity;
                                _row["isFreeChk"]=dym.isFreeChk;
                                _row["fhQuantity"] = dym.fhQuantity;
                                gvMx1.UpdateCurrentRow();
                                _Table.Rows.Add(_row);
                            }
                            gcMx1.BindingContext = new BindingContext();
                            gcMx1.DataSource = _Table;
                            gcMx1.ForceInitialize();
                            gvMx1.CloseEditor();
                            gvMx1.PostEditor();
                            gvMx1.UpdateCurrentRow();
                            gvMx1.BestFitColumns();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message);
                        }
                    };
                    frm2.ShowDialog();
                    return;
                }
            };
            //源单事件
            txt_fHasLinkRad.SelectedIndex = 0;
            setSrm();
            txt_fHasLinkRad.SelectedIndexChanged += (s, e) =>
            {
                setSrm();
            };
        }
        private void GridView1_ColumnFilterChanged(object sender, EventArgs e)
        {
            _filterList = Gs.DevApp.ToolBox.UtilityHelper.GetDilter(gridView1.Columns, gridView1);
@@ -308,9 +399,10 @@
                UtilityHelper.ChangeEnableByControl(this.layoutMx1.Controls, true, gvList);
            }
            //2025/07/12加上修改状态下不能修改
            setSrm();
            txt_salesOrg.IsReadly = true;
            txt_inventoryOrg.IsReadly = true;
            txt_fHasLinkRad.ReadOnly = true;
            txt_salesOrderId.IsReadly = true;
        }
        /// <summary>
        /// 新增事件
@@ -327,7 +419,10 @@
            UtilityHelper.CleanValueByControl(this.layoutMx1.Controls, true, gridViews);
            Gs.DevApp.ToolBox.UtilityHelper.SetDefaultTable(gcMx1, gvMx1);
            Gs.DevApp.ToolBox.UtilityHelper.SetDefaultTable(gcMx2, gvMx2);
            //增加时,默认组织
            string deftOrg = UtilityHelper.GetFirstOrg(txt_salesOrg);
            string deftXqOrg = UtilityHelper.GetFirstOrg(txt_inventoryOrg);
            setSrm();
        }
        /// <summary>
        /// 保存事件
@@ -337,36 +432,75 @@
        private void ToolBarMenu1_btnSaveClick(object sender, EventArgs e)
        {
            toolBarMenu1.isSetBtn = false;
            string djlx = txt_billType.Text.ToString();
            string FNote = txt_returnReason.Text.ToString();
            string _sqGuid = txt_salesOrderId.GetId();
            string ckId = txt_fstockid.GetId();
            if (string.IsNullOrEmpty(_sqGuid))
            {
                Gs.DevApp.ToolBox.MsgHelper.ShowError("请选择销售订单!");
                txt_salesOrderId.Focus();
                return;
            }
            string _djlx = txt_billType.Text.ToString();
            string _FNote = txt_returnReason.Text.ToString();
            string _ckId = txt_fstockid.GetId();
            int _FIsLink = txt_fHasLinkRad.SelectedIndex;
            //下面是无源单用到的
            string _salesOrg = txt_salesOrg.GetId();
            string _inventoryOrg = txt_inventoryOrg.GetId();
            string _returnCustomer = txt_returnCustomer.GetId().ToString();
            string _salesDept = txt_salesDept.GetId();
            if (txt_billType.SelectedIndex < 0)
            {
                Gs.DevApp.ToolBox.MsgHelper.ShowError("请选择单据类型!");
                txt_billType.Focus();
                return;
            }
            if (string.IsNullOrEmpty(ckId))
            if (_FIsLink < 0)
            {
                Gs.DevApp.ToolBox.MsgHelper.ShowError("请选择源单类型!");
                txt_fHasLinkRad.Focus();
                return;
            }
            if (string.IsNullOrEmpty(_salesOrg))
            {
                Gs.DevApp.ToolBox.MsgHelper.ShowError("请选择销售组织!");
                txt_salesOrg.Focus();
                return;
            }
            if (string.IsNullOrEmpty(_returnCustomer))
            {
                Gs.DevApp.ToolBox.MsgHelper.ShowError("请选择客户!");
                txt_returnCustomer.Focus();
                return;
            }
            if (string.IsNullOrEmpty(_ckId))
            {
                Gs.DevApp.ToolBox.MsgHelper.ShowError("请选择仓库!");
                txt_fstockid.Focus();
                return;
            }
            //这无源类型的检验beg
             if (_FIsLink == 1)
            {
                if (string.IsNullOrEmpty(_inventoryOrg))
                {
                    Gs.DevApp.ToolBox.MsgHelper.ShowError("请选择存组织!");
                    txt_inventoryOrg.Focus();
                    return;
                }
                if (string.IsNullOrEmpty(_salesDept))
                {
                    Gs.DevApp.ToolBox.MsgHelper.ShowError("请选择部门!");
                    txt_salesDept.Focus();
                    return;
                }
            }
            var _obj = new
            {
                guid = UtilityHelper.ToGuid(lbGuid.Text.Trim()), //主建
                djlx = djlx,//单据类型
                salesId = _sqGuid,//销售单号
                inRemark = FNote.Trim(),//备注
                ckId = ckId,
                djlx = _djlx,//单据类型
                inRemark = _FNote.Trim(),//备注
                ckId = _ckId,
                FIsLink = txt_fHasLinkRad.SelectedIndex,
                //下面是无源的
                salesOrg = _salesOrg,
                inventoryOrg = _inventoryOrg,
                returnCustomer = _returnCustomer,
                salesDept = _salesDept,
                list = new List<dynamic>(),
            };
            gvMx1.CloseEditor();
@@ -409,6 +543,7 @@
                        Bz = (row["note"].ToString()),
                        Thlx = (row["returnType"].ToString()),
                        Thrq = (row["returnDate"].ToString()),
                        ItemId = (row["ItemId"].ToString()),
                    });
                }
            }
@@ -652,21 +787,7 @@
                MsgHelper.ShowError("提示:" + ex.Message);
            }
        }
        private void repositoryItemSearchLookUpEdit1_EditValueChanged(object sender, EventArgs e)
        {
            SearchLookUpEdit LookupEdit = sender as SearchLookUpEdit;
            DataRowView SelectedDataRow = (DataRowView)LookupEdit.GetSelectedDataRow();
            gvMx1.SetFocusedRowCellValue("itemNo", SelectedDataRow["itemNo"].ToString());
            gvMx1.SetFocusedRowCellValue("itemName", SelectedDataRow["itemName"].ToString());
            gvMx1.SetFocusedRowCellValue("itemModel", SelectedDataRow["itemModel"].ToString());
            gvMx1.SetFocusedRowCellValue("itemId", SelectedDataRow["itemId"].ToString());
            //gvMx1.SetFocusedRowCellValue("itemUnit", SelectedDataRow["dwName"].ToString());
            gvMx1.SetFocusedRowCellValue("salesQuantity", SelectedDataRow["fhSl"].ToString());
            gvMx1.SetFocusedRowCellValue("deliveDetailGuid", SelectedDataRow["ckmxGuid"].ToString());
            gvMx1.CloseEditor();
            gvMx1.PostEditor();
            gvMx1.UpdateCurrentRow();
        }
        /// <summary>
        /// 移出明细
        /// </summary>
@@ -742,5 +863,23 @@
                txt_iCount_1.Text = "";
            }
        }
        private void setSrm()
        {
            int ddd = txt_fHasLinkRad.SelectedIndex;
            if (ddd == 0)
            {
                layItem3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
                layItem4.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
            }
            else
            {
                layItem3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
                layItem4.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always;
            }
        }
    }
}