Files
Gatedge.HuiWei.BOS.JJGZMJ/aoyuPlugIn/汇威/zp_plyg.cs
2025-06-20 09:17:36 +08:00

394 lines
14 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.Collections;
using System.Data;
namespace aoyuPlugIn
{
[HotUpdate]
[Description("装配批录员工")]
public class zp_plyg : AbstractBillPlugIn
{
public override void BeforeSave(BeforeSaveEventArgs e)
{
base.BeforeSave(e);
if (check_data() == false)
e.Cancel = true;
}
//检测数据
bool check_data()
{
bool isok = true;
try
{
string djno ="";int isAdd=0;
if (this.View.OpenParameter.Status == OperationStatus.ADDNEW) //新增
{
isAdd = 0;
}
else
{
djno = this.Model.GetValue("FBillNo").ToString();
isAdd = 1;
}
string FEntity_nm = "F_GAT_Entity1";
//取表体最大行数
int tol = this.Model.GetEntryRowCount(FEntity_nm);
if (tol > 0)
{
//集体计件
isok = yzdata(getJTJJ(), djno, isAdd);
}
else
{
//个人计件
isok = yzdata(getGRJJ(), djno, isAdd);
}
}
catch (Exception ex)
{ this.View.ShowMessage("检测数据时发生错误为:" + ex.Message); }
return isok;
}
//验证数据
bool yzdata(DataTable tb,string djno,int isAdd)
{
try
{
foreach (DataRow r in tb.Rows)
{
string rwdID = r["rwdID"].ToString();
string gxID = r["gxID"].ToString();
string sl = r["sl"].ToString();
string[] jg = tolsl(djno, rwdID, gxID, sl, isAdd);
if (jg[0] == "1")
{
this.View.ShowErrMessage(jg[1].ToString() + "");
return false;
}
}
}catch(Exception ex) { this.View.ShowMessage("验证数据时发生错误为:" + ex.Message); }
return true;
}
//bool check_data1()
//{
// bool isok = true;
// try
// {
// string djno = ""; int isAdd = 0;
// if (this.View.OpenParameter.Status == OperationStatus.ADDNEW) //新增
// {
// isAdd = 0;
// }
// else
// {
// djno = this.Model.GetValue("FBillNo").ToString();
// isAdd = 1;
// }
// string FEntity_nm = "F_GAT_Entity1";
// //取表体最大行数
// int tol = this.Model.GetEntryRowCount(FEntity_nm);
// for (int i = 0; i < tol; i++)
// {
// DynamicObject fgt = this.View.Model.GetValue("F_SCNO", i) as DynamicObject;
// string rwdID = fgt["ID"].ToString();
// DynamicObject fgt1 = this.View.Model.GetValue("F_DJGWID", i) as DynamicObject;
// string gxID = fgt1["Number"].ToString();
// string sl = this.Model.GetValue("F_FQTY").ToString();
// Double[] jg = tolsl(djno, rwdID, gxID, sl, isAdd);
// if (jg[0] == 1)
// {
// isok = false;
// this.View.ShowErrMessage("第" + (i + 1).ToString() + "行超过订单数" + jg[1].ToString() + "");
// break;
// }
// }
// //个人计件
// DataTable tbgr = getGRJJ();
// }
// catch (Exception ex)
// { this.View.ShowMessage("验证数据时发生错误为:" + ex.Message); }
// return isok;
//}
//取集体计件数量
DataTable getJTJJ ()
{
ArrayList data1 = new ArrayList();
DataTable tb = new DataTable();
tb.Columns.Add("rwdID");
tb.Columns.Add("gxID");
tb.Columns.Add("sl");
try
{
string FEntity_nm = "F_GAT_Entity1";
//取表体最大行数
int tol = this.Model.GetEntryRowCount(FEntity_nm);
for (int i = 0; i < tol; i++)
{
DynamicObject fgt = this.View.Model.GetValue("F_SCNO", i) as DynamicObject;
string rwdID = fgt["ID"].ToString();
DynamicObject fgt1 = this.View.Model.GetValue("F_DJGWID", i) as DynamicObject;
string gxID = fgt1["Number"].ToString();
string sl = this.Model.GetValue("F_FQTY",i).ToString();
string p = rwdID + "*" + gxID;
if (data1.Contains(p) == false)
{
data1.Add(p);
DataRow nr = tb.NewRow();
nr[0] = rwdID;
nr[1] = gxID;
nr[2] = sl;
tb.Rows.Add(nr);
}
else
{
foreach (DataRow r2 in tb.Rows)
{
if (rwdID == r2["rwdID"].ToString() && gxID == r2["gxID"].ToString())
{
r2["sl"] = Convert.ToInt16(sl) + Convert.ToInt16(r2["sl"].ToString());
break;
}
}
}
}
}
catch (Exception ex)
{ this.View.ShowMessage("验证数据时发生错误为:" + ex.Message); }
return tb;
}
//取个人计件数据
DataTable getGRJJ()
{
//int index = this.View.Model.GetEntryCurrentRowIndex("你的单据体标识");
//DynamicObject obj = this.Model.DataObject;
//DynamicObjectCollection rows = obj["你的单据体ORM实体名"] as DynamicObjectCollection;
//rows[index];// 就是你要的
//取表体最大行数
//int tol = this.Model.GetEntryRowCount(FEntity_nm);
ArrayList data1 = new ArrayList();
DataTable tb = new DataTable();
tb.Columns.Add("rwdID");
tb.Columns.Add("gxID");
tb.Columns.Add("sl");
try
{
string ORM_NM = "GAT_DAY_GR_ZP";//你的单据体ORM实体名
DynamicObject obj = this.Model.DataObject;
DynamicObjectCollection rows = obj[ORM_NM] as DynamicObjectCollection;
int i = 0;
foreach (var r in rows)
{
DynamicObject fgt = r["F_SCNO1"] as DynamicObject;
string rwdID = fgt["ID"].ToString();
DynamicObject fgt1 = r["F_GWID"] as DynamicObject;
string gxID = fgt1["Number"].ToString();
string p = rwdID + "*" + gxID;
string sl = r["F_FQ1TY1"].ToString();
if (data1.Contains(p) == false)
{
data1.Add(p);
DataRow nr = tb.NewRow();
nr[0] = rwdID;
nr[1] = gxID;
nr[2] = sl;
tb.Rows.Add(nr);
}
else
{
foreach (DataRow r2 in tb.Rows)
{
if (rwdID == r2["rwdID"].ToString() && gxID == r2["gxID"].ToString())
{
int kk = Convert.ToInt16(sl) + Convert.ToInt16(r2["sl"].ToString());
r2["sl"] = kk;
break;
}
}
}
}
}catch(Exception ex) { this.View.ShowMessage("组合表数据时发生错误为:" + ex.Message); }
return tb;
}
string[] tolsl(string djno,string rwdID,string gxID,string sl, int isAdd)
{
string[] isok = new string[2];
isok[0] = "0";
isok[1] = "0";
string sql = String.Format("exec hw_zp_yzsl '{0}',{1},{2},'{3}',{4}",djno, rwdID,gxID,sl,isAdd);
var dr1 = DBServiceHelper.ExecuteDynamicObject(this.Context, sql);
string jg = "0";
if (dr1.Count > 0)
jg = dr1[0][0].ToString();
if ( jg!="0") {
isok[0] = "1";
isok[1] = jg;
}
return isok;
}
//单据头菜单点击
//public override void BarItemClick(BarItemClickEventArgs e)
//{
// base.BarItemClick(e);
// //if (e.BarItemKey == "tbApprove" || e.BarItemKey == "tbSplitApprove")
// //{
// // fx_yscs(e, "1");
// //}else if(e.BarItemKey== "tbReject") {
// // fx_yscs(e, "0");
// //}
//}
//public override void AfterBarItemClick(AfterBarItemClickEventArgs e)
//{
// base.AfterBarItemClick(e);
// //if (e.BarItemKey == "tbReject")
// //{
// // //隐藏审核菜单
// // this.View.GetMainBarItem("tbApprove").Visible = false;
// // this.View.GetMainBarItem("tbSplitApprove").Visible = false;
// //}
//}
//public override void AfterBindData(EventArgs e)
//{
// base.AfterBindData(e);
//// var baseObj1 = this.Model.GetValue("FBT005");
// if (baseObj1.ToString() =="0")
// {
// var sSql = String.Format("exec hw_get_btbz");
// var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
// int i = 0;
// if (dr.Count > 0)
// {
// //string k = item[0].ToString();
// //this.Model.SetValue("F_YGNO3", item[0], i);
// this.Model.SetValue("FBT005", dr[0][1].ToString());
// this.View.UpdateView("FBT005");
// this.Model.SetValue("FBT006", dr[1][1].ToString());
// this.View.UpdateView("FBT006");
// this.Model.SetValue("FBT012", dr[2][1].ToString());
// this.View.UpdateView("FBT012");
// }
// }
//}
//反写已生产数据
void fx_yscs(BarItemClickEventArgs e,string sh)
{
string fbillno = this.View.Model.GetValue("FBillNo").ToString();
var sSql = String.Format("EXEC hw_zplr_fx_scdd " + fbillno + ","+sh);
var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
string t = "生产数量大于订单数量,不能审核!";
if (dr.Count > 0)
{
foreach (var item in dr)
{
string k = "生产订单:" + item["rwdNo"].ToString() + "|工序编号:" + item["gxNo"].ToString()
+ "|订单数:" + item["dds"].ToString() + "|已生产数:" + item["yscs"].ToString();
t = t + "\r\n" + k;
}
this.View.ShowMessage(t);
e.Cancel = true;
}
}
//点击单据体菜单
public override void EntryBarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
if (e.BarItemKey == "tbPLYG")
{
//string t =this.View.Model.GetValue("F_CBM").ToString();
//string t = this.View.Model.DataObject["F_CBM"].ToString();
DynamicObject fgt = this.View.Model.GetValue("F_CBM") as DynamicObject;
string t = fgt["ID"].ToString();
add_data_stort(t);
}
}
void del_data(string FEntity_nm)
{
try
{
//取表体最大行数
int tol = this.Model.GetEntryRowCount(FEntity_nm);
tol--;
for (int i = tol; i > -1; i--)
{
this.View.Model.DeleteEntryRow(FEntity_nm, i); //先删除空行
}
}
catch (Exception ex)
{ this.View.ShowMessage("删除表体数据时发生错误为:" + ex.Message); }
}
public void add_data_stort(string cs)
{
try
{
del_data("F_JTJJ");
var sSql = String.Format("EXEC hw_get_plyg " + cs);
var dr = DBServiceHelper.ExecuteDynamicObject(this.Context, sSql);
int i = 0;
if (dr.Count > 0)
{
this.View.Model.BatchCreateNewEntryRow("F_JTJJ", dr.Count);
}
foreach (var item in dr)
{
string k = item[0].ToString();
this.Model.SetValue("F_YGNO3", item[0], i);
//this.Model.SetValue("F_REM", "1", i);
i++;
}
}
catch (Exception ex) { this.View.ShowMessage("加表体数据时发生错误为:" + ex.Message); }
}
}
}