Files
Gatedge.HuiWei.BOS.JJGZMJ/aoyuPlugIn/汪总监/佳博销售订单验证库存数/jb_xsdd_yzkcs.cs
2025-06-20 09:17:36 +08:00

98 lines
3.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.ComponentModel;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.BOS;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.Bill.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.Metadata.EntityElement;
using Kingdee.BOS.Core.SqlBuilder;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using System.Data;
using System.Collections;
using System.Windows.Forms;
namespace aoyuPlugIn
{
[Description("销售订单验证库存数")]
public class jb_xsdd_yzkcs : AbstractBillPlugIn
{
public override void BeforeSave(BeforeSaveEventArgs e)
{
base.BeforeSave(e);
////取表体最大行数
//string FEntity_nm = "T_SAL_ORDERENTRY";
//int tol = this.Model.GetEntryRowCount(FEntity_nm);
//计算评审天数
//销售组 FSaleGroupIdFSALEGROUPID
DynamicObject obxsz = this.View.Model.GetValue("FSaleGroupId") as DynamicObject;
string xsz = obxsz["Name"].ToString();
try
{
//FSaleOrderEntry
string ORM_NM = "SaleOrderEntry";//你的单据体ORM实体名
DynamicObject obj = this.Model.DataObject;
DynamicObjectCollection rows = obj[ORM_NM] as DynamicObjectCollection;
int k = 0;
ComboBox cmb = new ComboBox();DataTable tb = new DataTable();
tb.Columns.Add("wlno");tb.Columns.Add("fqty");
try {
foreach (var r in rows)
{
DynamicObject obwl = this.View.Model.GetValue("FMaterialId", k) as DynamicObject;
string wlno = obwl["Number"].ToString();
if (cmb.Items.Contains(wlno) == false)
{
cmb.Items.Add(wlno);
DataRow nr = tb.NewRow();
nr[0] = wlno;
string dds = this.View.Model.GetValue("FQty", k).ToString();
nr[1] = dds;
tb.Rows.Add(nr);
}
else
{
DataRow[] nr = tb.Select("wlno='" + wlno + "'");
nr[0]["fqty"] = (Convert.ToDouble(nr[0]["fqty"].ToString()) + Convert.ToDouble(this.View.Model.GetValue("FQty",k).ToString())).ToString();
}
k++;
}
}
catch(Exception ex) { MessageBox.Show(ex.Message); }
k = 0;
foreach (DataRow r in tb.Rows)
{
string wlno = r["wlno"].ToString();
Double fqty = Convert.ToDouble( r["fqty"].ToString());
var sSql = String.Format("EXEC jb_get_kchz " + xsz + "," + wlno);
var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
Double cys =Convert.ToDouble(dr[0]["cys"].ToString());
if (fqty > cys)
{
this.View.ShowMessage("物料编码:" + wlno + "的订单数" + fqty.ToString() + "大于库存管理报表中的差异数" + cys.ToString() + ",不能保存");
//e.Cancel = true;
}
k++;
}
}
catch (Exception ex) { this.View.ShowMessage("验证数据时发生错误为:" + ex.Message);
e.Cancel = true;
}
}
}
}