394 lines
14 KiB
C#
394 lines
14 KiB
C#
|
|
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); }
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|